javascript - javascript indexOf() 方法在严格模式下的意外结果

标签 javascript arrays indexof mode strict

<分区>

我不明白为什么代码执行的结果会是-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/

相关文章:

javascript - Angular 观察组未能始终如一地接收模型变化

javascript - ionic /如何从选择控件中选择多个选项(最多选择 3 个选项)?

c - Switch case 弄乱了我试图转换的数组

javascript - 检查两个具有浮点值的对象是否相等?

javascript - 错误: mongoose.模型不是函数

java - 将 int 放入对象数组后,我得到的是 Integer 还是 int ?

php - 如何在 PDO 中将查询结果检索为数组?

javascript - 对象索引并使用 youtube api 接下来播放

javascript - indexOf() 反斜杠返回 -1 javascript

string - Swift:获取字符串中子字符串开头的索引