深刻理解变量名提升过程
//变量的创建三个过程: 创建 初始化 赋值
// 变量名提示指的是 创建、初始化 -->提升
// let const 只是创建提升、并未初始化,所以不能用(暂存性死区);
Object.defineProperty(window,'testlet',{
value:22
});
// console.log(testlet);
let testlet=2;
总之:es5的变量名提升指的是 创建与初始化被提升
let 的「创建」过程被提升了,但是初始化没有提升。
var 的「创建」和「初始化」都被提升了。
function 的「创建」「初始化」和「赋值」都被提升了。