代码执行前操作
- 变量提升,针对 var/ function
- 词法解析,针对 let/ const; 不可以重复声明
变量提升区别
- var 只是提前声明,并没有提前赋值
- function 提前声明+赋值(也就是将变量和”值“关联)
特别注意函数表达式的形式fn(); function fn() { console.log(1); } // => 1
fn(); function fn() { console.log(2); } fn(); var fn = function() { console.log(1) } fn(); function fn() { console.log(4) } fn(); function fn() { console.log(5); } fn(); // 输出 => /** * 5 * 5 * 1 * 1 * 1 */