声明变量之间的区别

时间:2015-05-17 16:15:30

标签: javascript

变量的声明方式有什么区别?

a = 5;

var a = 5;

是否与范围有任何关系?

4 个答案:

答案 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

这值得做,因为将无法察觉的错误转化为明显的错误。