何时在 JavaScript 中使用 var

发布于 2024-10-25 16:38:37 字数 334 浏览 2 评论 0原文

也许很简单的问题。

我应该在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

早茶月光 2024-11-01 16:38:37

当您使用 var 时,您正在当前作用域中实例化一个变量。这也将阻止在当前作用域内访问更高作用域中具有相同名称的变量。

在第一个示例中,“a”正在函数范围内实例化和设置。在第二个示例中,由于缺少 var,'a' 被设置在函数作用域之外。

使用 var

var a = "A"
(function(){
  var a = "B"
  alert(a) //B
})()

alert(a); //A

不带 var

var a = "A";
(function(){
  a = "B"
  alert(a) //B
})()

alert(a) //B

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:

var a = "A"
(function(){
  var a = "B"
  alert(a) //B
})()

alert(a); //A

Without var:

var a = "A";
(function(){
  a = "B"
  alert(a) //B
})()

alert(a) //B
一个人的夜不怕黑 2024-11-01 16:38:37

使用 var:

var a = 'world';   
myfunction = function(){
  var a = "mundo"
  alert("Hola, " + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'world';

不使用 var:

var a = 'world';   
myfunction = function(){
  a = "mundo"
  alert("Hola, " + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'mundo'

Using var:

var a = 'world';   
myfunction = function(){
  var a = "mundo"
  alert("Hola, " + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'world';

Not using var:

var a = 'world';   
myfunction = function(){
  a = "mundo"
  alert("Hola, " + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'mundo'
爱冒险 2024-11-01 16:38:37

我认为您需要重新了解 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

青朷 2024-11-01 16:38:37

如果 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文