1.使用关键字var声明的变量,只能在其当前的作用域下存在:
var a = 1;
function() {
var a = 2;
}
// 函数外面的那个a和函数里的a虽然变量名一样,但其实是两个变量,互相独立。函数内部的那个a只能在函数内部访问,如修改其值,对函数外的变量a没有影响。
2.在函数作用域中,不使用关键字var声明的变量,仅表示对全局作用域的引用(访问)。
var a = 1;
function() {
a = 2; // 指window.a
}
// 此时函数内部的变量a和函数外部的变量a是同一个,二者为引用关系(即函数作用域访问全局作用域中的变量)。