使用“var”声明变量是可选的吗?
使用“var”声明变量是可选的吗?
这个问题已经有答案了:
\"var\"是可选的吗?
myObj = 1;
同样的吗?
var myObj = 1;
我发现从我的测试中他们都可以使用,我假设var
是可选的。是这样的吗?
admin 更改状态以发布 2023年5月21日
这是Javascript中比较棘手的一部分,同时也是它的核心功能之一。使用var
声明的变量会从声明的位置“开始它的生命”。如果不加var
,就像你在谈论之前使用过的变量。
var foo = 'first time use'; foo = 'second time use';
关于作用域,变量不会自动变成全局变量。相反,Javascript将遍历作用域链,以查看之前是否使用了该变量。如果发现同名变量的实例之前已经被使用过,它会使用那个实例和它被声明在的作用域。如果它在任何地方都没有遇到变量,最终会碰到全局对象(在浏览器中是window
),并将变量附加到它上面。
var foo = "I'm global"; var bar = "So am I"; function () { var foo = "I'm local, the previous 'foo' didn't notice a thing"; var baz = "I'm local, too"; function () { var foo = "I'm even more local, all three 'foos' have different values"; baz = "I just changed 'baz' one scope higher, but it's still not global"; bar = "I just changed the global 'bar' variable"; xyz = "I just created a new global variable"; } }
当与嵌套函数和回调一起使用时,这种行为非常强大。学习什么是函数
以及作用域如何工作是Javascript中最重要的事情。