变量的声明方式有什么区别?
a = 5;
和
var a = 5;
是否与范围有任何关系?
答案 0 :(得分:2)
var a
将创建局部变量。另一个将创建和/或设置一个全局变量。
大多数情况下,除了绝对需要创建全局变量外,最好还是创建局部变量。
答案 1 :(得分:1)
a = 5将从任何范围声明一个全局变量。 var a = 5将在声明的范围内声明一个变量。
a = 5; //global variable
var b = 6; // global variable
function foo(){
var c = 7; //local variable
d = 9; //global variable
}
答案 2 :(得分:1)
一个声明变量,另一个声明不变。
var
关键字用于声明变量,变量是在当前范围内创建的。
如果为尚未存在的变量赋值,则会在全局范围内隐式创建变量。
答案 3 :(得分:1)
if(((InputElement) querySelector('#username')).value!="")
这将设置一个变量,如果尚未声明变量,那么它将在全局范围内创建(您可能不需要)。
a = 5;
这将创建并设置变量。如果在函数内部,变量将在函数作用域中创建为局部变量,否则将全局创建它。
另外值得注意的是,语句var a = 5将被提升到函数的顶部。即。
var a = 5;
实际上变成了
function() {
doSomestuff();
a = 4;
var a = 5;
doOtherStuff();
}
有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var。
另外值得注意的是,如果使用严格模式,则无法使用= 5声明变量。必须使用var关键字。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode
这值得做,因为将无法察觉的错误转化为明显的错误。