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循环在做什么?
edit:firefox中的同一页面在控制台中返回预期的行为。我还没有测试过其他浏览器
在原始页面上有一个ES6填充程序,它将函数contains()
添加到String
原型中。你可以自己做这样的事情:
String.prototype.contains =
function(e) {
return this.indexOf(e) > -1;
};
最终标准化的ES6函数是includes()
,所以将来当开发人员更新垫片时,您可能会看到函数名称发生了更改。
相关文章:
- Javascript未捕获语法错误意外的标识符错误
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- 意外的令牌非法javascript/metrol
- 意外的javascript输出
- 未捕获的语法错误:javascript对象上出现意外的标记ILLEGAL
- 未捕获的语法错误:javascript中出现意外的标记}
- JavaScript-Gulp/Browserify:SyntaxError:意外的令牌
- Javascript 意外返回值,带有特定的缩进
- Javascript:函数返回意外结果
- ES6 类扩展本机类型使实例在某些 JavaScript 引擎中出现意外行为
- JavaScript:控制台的意外输出.log('str' + int + int)
- 意外;在我的JavaScript中,我不明白为什么
- JavaScript意外的令牌<,有什么方法可以逃避错误(或至少跳过那些无用的字符)
- Chrome 的 Javascript 控制台中的意外标识符
- “语法错误:意外的令牌)”在 javascript 调用中,当 eval(value) 为空时
- Javascript 数组反向函数意外行为
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js:
- 来自 JavaScript 循环的意外结果
- JavaScript 问题 - 意外的令牌 (.
- Chrome内部循环行为的意外Javascript