小编典典

使用 'var' 声明变量是可选的吗?

all

“var”是可选的吗?

myObj = 1;

与…一样 ?

var myObj = 1;

我发现它们都在我的测试中起作用,我认为var是可选的。那正确吗?


阅读 105

收藏
2022-03-29

共1个答案

小编典典

他们的意思不同。如果您使用var的变量是在您所在的范围内声明的(例如函数)。如果您不使用var,则变量会在范围层中冒泡,直到遇到具有给定名称或全局对象(窗口,如果您在浏览器中执行此操作)的变量,然后将其附加到该变量。它与全局变量
非常相似。 但是,它仍然可以被删除delete(很可能被其他人的代码也未能使用var)。如果var在全局范围内使用,该变量是 真正的全局
变量,不能被删除。

在我看来,这是 javascript
最危险的问题之一,应该被弃用,或者至少会发出警告而不是警告。原因是,很容易忘记var并且意外地将一个公共变量名绑定到全局对象。这会产生奇怪且难以调试的行为。

2022-03-29