一尘不染

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

javascript

“ var”是可选的吗?

myObj = 1;

如同 ?

var myObj = 1;

我发现它们都可以通过我的测试工作,我认为这var是可选的。那正确吗?


阅读 273

收藏
2020-04-25

共1个答案

一尘不染

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

在我看来,这是javascript最危险的问题之一,因此不建议使用,或者至少在警告时发出警告。原因是,很容易忘记,var并且偶然有一个绑定到全局对象的通用变量名。这会产生奇怪且难以调试的行为。

2020-04-25