<分区>
我不明白为什么代码执行的结果会是-1
(仅限严格模式):
'use strict'
[0,1].indexOf(0)
是bug还是其他原因?
注意:在正常模式下它按预期工作:索引 0 是 0
我尝试分析 Polyfills code on mdn并且只有一个想法为什么会发生:在某些情况下,在严格模式下 this
不是指窗口,而是指“未定义”。
<分区>
我不明白为什么代码执行的结果会是-1
(仅限严格模式):
'use strict'
[0,1].indexOf(0)
是bug还是其他原因?
注意:在正常模式下它按预期工作:索引 0 是 0
我尝试分析 Polyfills code on mdn并且只有一个想法为什么会发生:在某些情况下,在严格模式下 this
不是指窗口,而是指“未定义”。
最佳答案
它更像是引擎如何评估你的代码。
浏览器将其视为一行,而不是两行
'use strict'[0,1].indexOf(0)
计算结果为
's'.indexOf(0)
这是-1
现在如果你用分号运行同样的代码,你会得到 0
'use strict';
[0,1].indexOf(0)
关于javascript - javascript indexOf() 方法在严格模式下的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49451306/