最近我在 jQuery 源代码中发现了一个奇怪的行(最新版本 1.9.1,Sizzle 包,第 129 行funescape
函数):
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
永远不会被执行。还是我错过了什么?
参考: jQuery 嘶嘶声