何时在 JavaScript 中使用 var
也许很简单的问题。
我应该在 JavaScript 中的哪里使用 var
关键字。在我看来,使用它或不使用它具有相同的效果(但当然我仍在学习该语言)
例如,这些对我来说似乎是相同的:
(function(){
var a = "mundo"
alert("Hola, " + a )
})()
并且
(function(){
a = "mundo"
alert("Hola, " + a )
})()
但是当然必须有一个更复杂的示例来显示差异。
Maybe pretty easy question.
Where should I use var
keyword in JavaScript. It seems to me using it or not have the same effect ( but of course I'm still learning the language )
For instance these both seems the same to me:
(function(){
var a = "mundo"
alert("Hola, " + a )
})()
and
(function(){
a = "mundo"
alert("Hola, " + a )
})()
But of course there must be a more complex example where the difference shows up.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
当您使用
var
时,您正在当前作用域中实例化一个变量。这也将阻止在当前作用域内访问更高作用域中具有相同名称的变量。在第一个示例中,“a”正在函数范围内实例化和设置。在第二个示例中,由于缺少
var
,'a' 被设置在函数作用域之外。使用
var
:不带
var
:When you use
var
, you are instantiating a variable in the current scope. This will also prevent access of variables named the same in higher scope, within the current scope.In your first example, 'a' is being instantiated and set within the function scope. In your second example, 'a' is being set outside the function scope due to lack of
var
With
var
:Without
var
:使用 var:
不使用 var:
Using var:
Not using var:
我认为您需要重新了解 Javascript 对象范围。
使用“var”关键字会将变量置于最顶层(全局)范围。这意味着如果一个函数使用相同的变量,您声明的“var”变量将覆盖函数中的(非var)变量...
JavaScript 作用域
I think that you need to refresh yourself on Javascript object scopes.
Using the "var" keyword will place your variable at the top-most (global) scope. This means that if a function uses the same variable, the "var" variable you declared will overwrite the (non-var) variable in your function...
JavaScript Scopes
如果 var 没有在函数内部使用,JS 会在上面查找它,所以如果你在不同的函数中使用 save vars,它们可能会发生冲突。如果您正在定义新变量,那么使用 var 总是值得的。
if var not used inside function, JS will look for it above, so in case you use save vars in different functions they might conflict. It always worth to use a var if you are defining new variable.