Недавно я нашел одну странную строку в источниках JQuery (последняя версия 1.9.1, Шипение пакет, строка 129 funescape
функция):Странный код в источниках jQuery: var! == var? x: y;
funescape = function(_, escaped) {
var high = "0x" + escaped - 0x10000;
// NaN means non-codepoint
return high !== high ? // <--- LINE 129
escaped :
// BMP codepoint
high < 0 ?
String.fromCharCode(high + 0x10000) :
// Supplemental Plane codepoint (surrogate pair)
String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);
};
В чем причина, чтобы сделать high !== high
сравнение? Очевидно, что return escaped
никогда не будет выполнен. Или мне что-то не хватает?
Ссылка:https://github.com/jquery/sizzle/blob/master/sizzle.js#L129
, может быть ошибка? которая является функцией ожидаемой подписи? Я также вижу неиспользуемый аргумент '' _'', ... – redShadow
@redShadow Ну, '_' понятен, поскольку по какой-либо причине (возможно, для сохранения совместимости) авторам необходимо получить только второй аргумент, вместо этого используйте 'arguments [1]'. – VisioN
Я думаю, что, как говорится в комментарии, 'NaN! == NaN' будет ** всегда ** возвращать' true' – Alexander