var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}
当代码块中存在const和let变量时,就表示这个代码块中按照这个修饰符进行理解,所以此时tmp实际上不指向外部,而指向 let修饰的tmp,而let修饰的,没有变量提升
}
当代码块中存在const和let变量时,就表示这个代码块中按照这个修饰符进行理解,所以此时tmp实际上不指向外部,而指向 let修饰的tmp,而let修饰的,没有变量提升