声明变量之间的差异

Difference between declaring variable

本文关键字:之间 变量 声明      更新时间:2023-09-26

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

a = 5;

var a = 5;

是否也与范围界定有关?

var a将创建局部变量。另一个将创建和/或设置全局变量。

大多数时候,最好创建局部变量,除非绝对需要创建全局变量。

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
  }
一个声明变量,另一个不声明。

var关键字用于声明变量,并且该变量是在当前作用域中创建的。

如果为一个尚不存在的变量赋值,则该变量将在全局范围内隐式创建。

a = 5;

这将设置一个变量,如果变量尚未声明,那么它将在全局范围内创建(这可能是您不想要的(。

var a = 5;

这将创建并设置一个变量。如果在函数内部,则变量将作为函数范围内的局部变量创建,否则将全局创建。

同样值得注意的是,语句var a=5将被提升到函数的顶部。即

function() {
    doSomestuff();
    a = 4;
    var a = 5;
    doOtherStuff();
}

实际上变成

function() {
    var a = 5;
    doSomestuff();
    a = 4;
    doOtherStuff();
}

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var了解更多信息。

同样值得注意的是,如果使用严格模式,则不能声明只有a=5的变量。您必须使用var关键字。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode

这是值得做的,因为它会把你无法察觉的错误变成明显的错误。