我试图在Firefox V30.0 Scratchpad中执行以下代码:
function do_something() { console.log(foo); // ReferenceError let foo = 2; } do_something();
预期的行为是我的程序应抛出引用错误,因为我在let
声明之前访问变量.但是,我没有得到预期的行为,程序被执行,结果如下
undefined
你能解释一下,为什么表现如此?
根据MDN兼容性表,Firefox仅支持自v35以来的时间死区语义.
此外,您应始终确保使用严格模式.由于担心打破传统网络,一些ES6功能在草率模式下不可用.尽管Firefox已经有很长的let
使用历史,但它不应该影响这个特定的情况.