使用strict传递非声明变量?

时间:2015-09-13 08:02:26

标签: javascript strict

想知道以下代码段幕后发生的事情或 - 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();

1 个答案:

答案 0 :(得分:2)

{1}}变量已在第1行声明。它已被隐式声明(没有.data_image { width: 250px; height:200px; border-bottom-left-radius: 20px; } ),但这并不重要,因为当时没有使用严格模式宣布了。

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