1.变量提升
变量使用:创建(create)、初始化(initialize) 和赋值(assign)。
var 的“创建”和“初始化”都被提升了;
function 的“创建”、”初始化“和”赋值“都被提升了;
let 的“创建”过程被提升了,但是“初始化”没有提升。
举例:
function fn(){ console.log(a)//undefined var a =3; console.log(b)//undefined let b =4; } { console.log(c);//Uncaught ReferenceError: c is not defined let c = 5; }
const 只有「创建」和「初始化」,没有「赋值」过程。
参考链接:let深入理解—let存在变量提升吗?