当前位置:  开发笔记 > 编程语言 > 正文

在声明之前访问'let'变量时,ReferenceError不会抛出

如何解决《在声明之前访问'let'变量时,ReferenceError不会抛出》经验,为你挑选了1个好方法。

我试图在Firefox V30.0 Scratchpad中执行以下代码:

function do_something() {
  console.log(foo); // ReferenceError
  let foo = 2;
}
do_something();

预期的行为是我的程序应抛出引用错误,因为我在let声明之前访问变量.但是,我没有得到预期的行为,程序被执行,结果如下

undefined

你能解释一下,为什么表现如此?



1> Bergi..:

根据MDN兼容性表,Firefox仅支持自v35以来的时间死区语义.

此外,您应始终确保使用严格模式.由于担心打破传统网络,一些ES6功能在草率模式下不可用.尽管Firefox已经有很长的let使用历史,但它不应该影响这个特定的情况.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有