我在我的网站上写了这段代码
for(var i = 0; i < 10; i++){
console.log([] > []);
}
并获得此输出
LOG: false
LOG: true
LOG: true
LOG: false
LOG: false
LOG: false
LOG: true
LOG: false
LOG: true
LOG: false
每次运行时输出都会改变。为什么会发生这种奇怪的行为?
您可以在this jsFiddle demo上自行试用。
答案 0 :(得分:14)
在jsFiddle中,Array.prototype.toString
被覆盖了以下内容......
function () {
return Math.random();
}
尝试这样......
[].toString(); // 0.6317324512006824
答案 1 :(得分:5)
您已包含的外部jQuery文件在第4022行上具有以下代码:
(function(){
Array.prototype.toString = function() {
return Math.random();
};
})();
......一个流氓小的IIFE,它覆盖了Array#toString。
你从哪里获得这个jQuery文件?