一、var申明变量

  学习过JavaScript的同学都应该知道,ES5中申明变量使用var,ES5中的var可以说是无所不能的,所有类型的变量都是由var来申明,但往往很多使用者不知道var申明的变量存在变量提升,即变量可以在申明之前使用,有时不注意申明的作用域会导致全局变量污染,特别要注意这种隐形的全局变量申明,直接没有val,比如a = 3,像这个变量a就成了全局变量,如果此时你在用var申明一个a变量,在使用过程中隐形变量a 的值就会被覆盖,这就是容易导致全局变量污染的原因之一,还以一个大家可能会产生误解的地方就是,所谓全局变量就是在javaScript代码中function最前边的var申明是全局变量,后面的就不是,其实var申明的变量只要不在function中就全部是全局变量,这点一定要注意。特别要说明的一点就是var申明的变量存在变量提升,我们先来看下面一段简单的代码

  
1 console.log(a);
2 var a = 4;
3 会输出underfined,不会报错referenceError
var申明变量提升举例说明

相关文章: