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