使用var关键字和不使用var关键字的区别

10

可能是重复问题:
JavaScript 中使用 var 和不使用 var 关键字的区别

在 JavaScript 中,使用 var 关键字和不使用它来声明一个变量有什么区别?

例如:

var x = 14;

而且 x = 14;

它们是相同的吗?当我们声明变量x时,它是局部变量,当没有使用var关键字时,它是全局变量吗?

谢谢!


Mike,请查看右侧的“Linked”部分,以了解它是重复的内容。 - ErikE
2个回答

13
如果在函数或其他非全局作用域中使用了 var 关键字,则该变量的作用域不是全局的
如果变量名之前没有使用 var 关键字,则该变量的作用域是全局的

我想补充一下,这并不是为了防止语言新手放弃而将其变成语法错误。如果您在整个函数中意外地创建了一个全局变量并对其进行操作,则简单的程序也可以正常运行。 - t3dodson
@TomDDD,是的,那不是一个语法错误,而可能是一个非常令人困惑的逻辑错误。这取决于实际使用情况。重要的是理解留下“var”时发生了什么,以及在我看来这里所询问的是什么。 - mrk
我完全同意你的观点。我只是在补充为什么这个“特性”存在的历史。从来没有省略的理由,即使是创建全局变量时也是如此。创建一个名为global的全局变量,并像普通赋值一样给它分配内容。 - t3dodson
即使x=2没有var在某些特定函数中,这也是真的吗?整个是否也是全局的? - Sana Ahmed

3

在函数外声明的变量成为全局变量,网页上的所有脚本和函数都可以访问。

关闭页面时,全局变量将被销毁。

如果您声明一个变量而不使用 "var",该变量将始终成为全局变量。


你使用的是 global 还是 GLOBAL,这两者有区别吗?还是只是为了强调而已? - Dev_Man

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