也许很简单的问题.
我应该var
在JavaScript中使用关键字.在我看来使用它或不具有相同的效果(但我当然还在学习语言)
比如这些对我来说似乎都是一样的:
(function(){
var a = "mundo"
alert("Hola, " + a )
})()
Run Code Online (Sandbox Code Playgroud)
和
(function(){
a = "mundo"
alert("Hola, " + a )
})()
Run Code Online (Sandbox Code Playgroud)
但当然必须有一个更复杂的例子,差异显示出来.
Bod*_*man 84
使用时var
,您将在当前范围中实例化变量.这也将阻止在当前范围内访问更高范围内名为相同的变量.
在第一个示例中,"a"正在实例化并在函数范围内设置.在您的第二个示例中,由于缺少"a",因此在函数范围之外设置了"a"var
用var
:
var a = "A"
(function(){
var a = "B"
alert(a) //B
})()
alert(a); //A
Run Code Online (Sandbox Code Playgroud)
没有var
:
var a = "A";
(function(){
a = "B"
alert(a) //B
})()
alert(a) //B
Run Code Online (Sandbox Code Playgroud)
Sam*_*fel 15
使用var:
var a = 'world';
myfunction = function(){
var a = "mundo"
alert("Hola, " + a )
}
myfunction(); //alerts 'hola, mundo'
alert(a); //alerts 'world';
Run Code Online (Sandbox Code Playgroud)
不使用var:
var a = 'world';
myfunction = function(){
a = "mundo"
alert("Hola, " + a )
}
myfunction(); //alerts 'hola, mundo'
alert(a); //alerts 'mundo'
Run Code Online (Sandbox Code Playgroud)
我认为您需要在 Javascript 对象范围上刷新自己。
使用“var”关键字会将您的变量置于最顶层(全局)范围内。这意味着如果函数使用相同的变量,您声明的“var”变量将覆盖函数中的(非 var)变量... JavaScript Scopes
归档时间: |
|
查看次数: |
31854 次 |
最近记录: |