{
debugger
a = 123
debugger
function a() {}
a = 456
console.log(a)
}
debugger
console.log(a)
/**
* 运行环境: nodejs
* 分析:
*
* 遇到第一个 debugger 时
* 此时 block 块里面 a: function
* 说明: function 的提升高于变量提升
*
* 遇到第二个 debugger 时
* block 块 a = 123
* local 块 a = undefined
*
* 说明:
* 在 block 环境中,不使用关键字声明的变量会在 local 环境中创建一个变量
* 同时也在 block 环境中创建相同的一个变量
*/
JavaScript block作用域 - 诡异现象
最新推荐文章于 2024-04-08 09:35:13 发布