声明提升 未声明变量 console.log(a); 在没有定义 a 的情况下,直接使用,会报错. 声明变量 console.log(a); var a = 2; 输出结果:undefined 并不会输出2. 原因:把这个过程拆分成两个操作.JS在编译的时候,先将var a 声明提升,分配空间.在执行的过程中才会对变量a进行赋值操作. 声明函数 console.log(foo); function foo(){} 不会报错,与var一样,这个声明也会提前. 当var 与 function 爱上了…