"use strict" 在某些特殊情况下无法正常工作。有人能解释一下吗?

4

我正在尝试弄清楚为什么"use strict"不像我期望的那样起作用。看看这个有效的例子。

"use strict"

x='Justin';
console.log(x)

正如预期的那样,这会产生一个错误,指出x未定义。但接下来看一下这个例子

"use strict"

name='Justin';
console.log(name)

它正常输出“Justin”而没有任何错误。为什么会这样,变量“name”有什么特殊之处?

2
它可能是引用了已经声明的 window.name - chovy
1
是的,那就是问题所在。非常有趣和信息量也很丰富。 - Justin Mathew
1
event 是另一个全局变量,可能会让你感到困惑。 - Valentin
1个回答

2
当您在浏览器中运行时,name 指的是全局对象的 name 属性,即 Window。因此它指的是 Window.name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接