有过JavaScript基础的都知道,在js中声明一个变量可以用 var a = 10; 也可以使用 a = 10; 这两种声明方式,他们有什么区别呢
用如下的代码作为示例
function test(){
var a = 10;
b = 100;
}
test();
console.log(b); //100
console.log(a); //a is not defined
运行结果如下
原因在于,在函数中调用变量a时使用了var,即在test()中声明了局部变量,而声明b时只是赋值,b最终作为全局变量。
因此最后访问a时因在外部访问不到内部函数的局部变量而报错