“ var”是可选的吗?
myObj = 1;
如同 ?
var myObj = 1;
我发现它们都可以通过我的测试工作,我认为这var是可选的。那正确吗?
var
他们的意思不同。如果使用var变量,则在范围内声明变量(例如,在函数中)。如果不使用var,则变量会在作用域的各个层中冒出气泡,直到遇到给定名称的变量或全局对象(如果在浏览器中是窗口,则为窗口),然后将变量附加到该变量。这与全局变量非常相似。但是,仍然可以使用删除它delete(很可能是其他人的代码也未能使用var)。如果var在全局范围内使用,则该变量是真正的全局 变量,无法删除。
delete
在我看来,这是javascript最危险的问题之一,因此不建议使用,或者至少在警告时发出警告。原因是,很容易忘记,var并且偶然有一个绑定到全局对象的通用变量名。这会产生奇怪且难以调试的行为。