gpt4 book ai didi

javascript - jQuery合并函数中的if条件令人困惑

转载 作者:可可西里 更新时间:2023-11-01 01:18:01 26 4
gpt4 key购买 nike

我刚刚浏览了 jQuery 的代码并遇到了函数合并。我查看了这个函数的代码:

merge: function( first, second ) {
var len = +second.length,
j = 0,
i = first.length;

while ( j < len ) {
first[ i++ ] = second[ j++ ];
}

// Support: IE<9
// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)

if ( len !== len ) {
while ( second[j] !== undefined ) {
first[ i++ ] = second[ j++ ];
}
}

first.length = i;

return first;
},

现在,如果您查看代码,您将遇到以下 if 检查:

if ( len !== len )

这在某种程度上对我来说没有意义,这个检查到底是为了什么,它在做什么?

len 上面几行定义的很清楚,像这样:

var len = +second.length;

那么为什么有人要检查 len !== len 呢?这在某种程度上对我来说没有意义。有人可以解释吗?

最佳答案

这是对 NaN 的检查(正如@Jonathan 的评论中正确指出的那样)。来自优Mozilla documentation :

NaN compares unequal (via ==, !=, ===, and !==) to any other value -- including to another NaN value. Use Number.isNaN() or isNaN() to most clearly determine whether a value is NaN. Or perform a self-comparison: NaN, and only NaN, will compare unequal to itself.

关于javascript - jQuery合并函数中的if条件令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30968391/

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