javascript中局部变量和全局变量的区别?

时间:2016-07-29 03:19:57

标签: javascript jquery

我注意到在JavaScript中,在函数内部有时会创建一个变量,而不会在它之前提及var

例如:

function myfunction() {
     x = 10;
     var y = 10;
}

这两者有什么区别?

1 个答案:

答案 0 :(得分:3)

function myact() {
  x = 20;
  var y = 10;
  console.log(x);
  console.log(y);
}
myact();
console.log(x);
//y not available here

var用于声明。因此,在没有声明的情况下分配将简单地赋予它全局范围含义:它将首先搜索它是否在上面的任何作用域堆栈中可用,如果不是在全局作用域中隐式创建变量并分配。

JS Docs says:

  

用var声明的变量的范围是它的当前执行   context,可以是封闭函数,也可以是变量   在任何函数之外声明,全局。

     

为未声明的变量赋值会隐式将其创建为   全局变量(它成为全局对象的属性)时   分配已执行。