【问题标题】:Unexpected result of javascript indexOf() method in strict mode [duplicate]javascript indexOf()方法在严格模式下的意外结果[重复]
【发布时间】:2018-09-02 05:27:48
【问题描述】:

我不明白为什么代码执行的结果会是-1(仅限严格模式):

'use strict'
[0,1].indexOf(0)

是bug还是其他原因? 注意:在正常模式下,它按预期工作:0 的索引是 0

我尝试分析Polyfills code on mdn 并且只有一个想法为什么会发生:在某些情况下,在严格模式下this 不是指窗口,而是指“未定义”。

【问题讨论】:

    标签: javascript arrays indexof mode strict


    【解决方案1】:

    ASI 踢你。

    'use strict'; // NB
    [0,1].indexOf(0)

    【讨论】:

      【解决方案2】:

      这更像是引擎如何评估您的代码。

      浏览器将其视为一行,而不是两行

      'use strict'[0,1].indexOf(0)
      

      计算结果为

      's'.indexOf(0)
      

      这是-1

      现在,如果您使用分号运行相同的代码,您将得到 0

      'use strict';
      [0,1].indexOf(0)
      

      【讨论】:

      • 正确,您可以添加他必须在'use strict' 之后添加分号才能使其正常工作。编辑:看到你已经添加了。
      猜你喜欢
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      相关资源
      最近更新 更多