ES6的let块级作用域和变量不可提升导致一个比较容易出现的错误

原创
2018/10/16 18:06
阅读数 327

今天在写NodeJS代码的时候出现一个变量一直提示未定义,简化后的代码如下:

let param = 1;

{
  console.log(param);
}

就在想,不至于啊。不是继承上层的声明吗?

继续看下去,发现原来看漏了一段,真正的代码应该是这样的:

let param = 1;

{
  console.log(param);

  let param = 2;
}

原来在块中又进行了一次声明,这个时候console语句中的param认的是块中声明的,基于变量不可提升的特性,console语句就报错了。

查了一下,据说这个叫“暂时性死区”。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部