繁体   English   中英

Chrome内意外的Javascript循环行为

[英]Unexpected Javascript for-loop behavior inside Chrome

因此,我在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中的同一页面在控制台中返回预期的行为。 我尚未测试其他浏览器

您在原始页面上有一个ES6填充程序 ,该函数将功能contains()String原型。 您可以自己执行以下操作:

String.prototype.contains = 
    function(e) {
        return this.indexOf(e) > -1;
    };

最终标准化的ES6函数是includes() ,因此将来当开发人员更新垫片时,您可能会看到函数名称发生更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM