所以我在chrome选项卡中获得了令人难以置信的奇怪的java脚本行为。该页面是登录后面的,所以我不能发布它,但有人可以解释究竟发生了什么???
for(var z in ""){ console.log(z) }
contains
//undefined
嗯...
var key = ""
for(var i in key){ console.log(i) }
contains
//undefined
Object.getOwnPropertyNames(key)
//["length"]
Object.getOwnPropertySymbols(key)
//[]
window[key]
//undefined
起初我认为这是其中一个JS行为,并准备将其提交给JSWTF,但行为在另一个chrome选项卡中正常运行:
for(var i in ""){ console.log('ran',i) }
//undefined
如何将值分配给空字符串? 它在哪里? 什么是for循环呢?
编辑:firefox中的同一页面在控制台中返回预期的行为。我还没有测试过其他浏览器
答案 0 :(得分:1)
原始页面上有an ES6 shim,它将contains()
函数添加到String
原型中。您可以通过执行以下操作来自己完成此操作:
String.prototype.contains =
function(e) {
return this.indexOf(e) > -1;
};
最终标准化的ES6函数是includes()
,因此当开发人员更新垫片时,您可能会看到将来函数名称发生更改。