JavaScript变量的易错点
var a = 1 
window.b = 2
c = 3
通过window或者直接声明的变量是全局变量,但是如果是通过var声明的变量如果在函数作用域内是不能被外面的访问到的。
JavaScript的作用域只有函数作用域或者全局作用域,没有块级作用域
console.log(a) // undefined 变量提升
var a = 1
console.log(a) // 1
这里第一次的输出结果是undefined,第二次是1,原因是虽然a的定义是在第一次的输出之后,但是这个时候出现的变量提升( hoisting )
console.log(a) // Uncaught ReferenceError: a is not defined 全局变量不会做变量提升
a = 1
console.log(a) // 1
但是全局变量就不会出现这样的情况
var a = 1;
window.b = 2 
c = 3
console.log(a)  // 1
console.log(b)  // 2
console.log(c)  // 3
delete a;
delete b;
delete c;
console.log(a); // 1
console.log(b); // Uncaught ReferenceError: b is not defined
console.log(c); // Uncaught ReferenceError: c is not defined
delete只会删除全局变量,不会删除var声明的变量
 
                    
                     
                    
                 
                    
                 

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号