【问题标题】:Use strict passed the non declared variable?使用严格传递未声明的变量?
【发布时间】:2015-09-13 08:02:25
【问题描述】:

想知道下面 sn-p 或 -https://jsfiddle.net/uhznvphn/ 的幕后发生了什么 当全局 x=20 被注释掉时,它会出错,这很好! 但是当它被取消注释时,它会打印 10。它不应该出错,因为我们仍然处于严格模式并且尚未声明本地“x”变量。即使它没有出错,它不应该打印 20

x = 20; //Comment and uncomment to see diff results
function a() {
"use strict";
x = 10;
console.log(x);
}

a();

【问题讨论】:

    标签: javascript strict


    【解决方案1】:

    x 变量已在第 1 行声明。它已被隐式声明(没有 var),但这并不重要,因为在声明它时没有使用严格模式。

    它不应该打印20,因为在记录值之前已经向它写入了一个新值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多