Pet*_*son 0 javascript comparison
我在我的网站上写了这段代码
for(var i = 0; i < 10; i++){
console.log([] > []);
}
Run Code Online (Sandbox Code Playgroud)
得到了这个输出
LOG: false
LOG: true
LOG: true
LOG: false
LOG: false
LOG: false
LOG: true
LOG: false
LOG: true
LOG: false
Run Code Online (Sandbox Code Playgroud)
每次运行时输出都会改变.为什么会发生这种奇怪的行为?
你可以在这个jsFiddle演示中亲自尝试一下.
小智 14
在jsFiddle中,Array.prototype.toString已被覆盖以下内容......
function () {
return Math.random();
}
Run Code Online (Sandbox Code Playgroud)
试试这样......
[].toString(); // 0.6317324512006824
Run Code Online (Sandbox Code Playgroud)
您包含的外部jQuery文件在第4022行上具有以下代码:
(function(){
Array.prototype.toString = function() {
return Math.random();
};
})();
Run Code Online (Sandbox Code Playgroud)
...一个覆盖Array#toString的流氓小IIFE.
你从哪里得到这个jQuery文件?