let name = 'outer' function showName() { console.log(name) let name = 'inner' } name = 'updatedOuter' showName()
outer
inner
updatedOuter
ReferenceError
ES6 中有明确的规定:如果区块中存在 let 和 const 命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。假如我们尝试在声明前去使用这类变量,就会报错。showName函数内,let name = 'inner'上面的区域就为暂时性死区。
let同一个作用域不能重复定义同一个名称,所以报错
let只初始化提升
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题