gpt4 book ai didi

javascript - if (obj !== obj) 做了什么?

转载 作者:行者123 更新时间:2023-11-29 16:27:10 27 4
gpt4 key购买 nike

this page您可以看到以下示例,了解如何实现数组的indexOf:

if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(searchElement /*, fromIndex */)
{
"use strict";

if (this === void 0 || this === null)
throw new TypeError();

var t = Object(this);
var len = t.length >>> 0;
if (len === 0)
return -1;

var n = 0;
if (arguments.length > 0)
{
n = Number(arguments[1]);
if (n !== n) // <-- code of interest
n = 0;
else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}

if (n >= len)
return -1;

var k = n >= 0
? n
: Math.max(len - Math.abs(n), 0);

for (; k < len; k++)
{
if (k in t && t[k] === searchElement)
return k;
}
return -1;
};
}

我的问题是关于这条线的:

if (n !== n)

在什么情况下这个 bool 表达式会返回true

最佳答案

这是验证数字是否为 NaN 的快捷方式。
假设您有 n = Number("string"); 那么 n !== n 将计算为 true
在这种情况下,您可以使用 if(isNaN(n)) 而不是 if(n !== n)

关于javascript - if (obj !== obj) 做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4879065/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com