Я просто просматривал код 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
? Это мне почему-то не имеет смысла. Может кто-нибудь объяснить?