想知道以下代码段幕后发生的事情或 - 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();
答案 0 :(得分:2)
{1}}变量已在第1行声明。它已被隐式声明(没有.data_image { width: 250px; height:200px; border-bottom-left-radius: 20px; }
),但这并不重要,因为当时没有使用严格模式宣布了。
它不应该打印x
,因为在记录值之前已经写入了一个新值。