不存在变量提升的let为什么影响声明前的语句?
相关代码
var a = 0
console.log(a)
let a = 9
console.log(a)
VM102:3 Uncaught SyntaxError: Identifier 'a' has already been declared
直接第三行报错,但是第二行也没有输出
顶部添加其他console代码后依然直接报错
看起来let的声明依旧被提升到了顶部?
测试环境(Safari 12)(chrome 69)
PS: var 不存在重复声明限制
var a = 0
console.log(a) //0
var a = 9
console.log(a) //9
这是因为在控制台里,使用
let
const
声明变量的时候,遵循本身定义的规则,具有块级作用域(不允许声明重复的变量名),而且定义的变量并没有销毁掉。