谁能解释Node.js如何编译和执行这段代码

这是我的MDN表格。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

1.  function test(){
2.    var foo = 33;
3.    {
4.        let foo = (foo + 55); // ReferenceError
5.        console.log(foo);
6.    }
7.  }
8.  test();

根据MDN网站:

  

与以var声明的变量(其值将以undefined开头)不同,let变量必须在对其定义求值后才进行初始化。

现在:由于我正试图了解(这是错误的),因此不应抛出ReferenceError,因为: 当解释器到达第4行时[现在var foo存在于内存中并分配了33。但是尚未创建let foo(临时死区)。 现在=运算符的第4行右侧。它应该在当前块中搜索foo(未找到,尚未创建becoz let foo。)然后--->在父块中搜索(找到,becoz全局且可用)。

然后在内部程序块第5行应打印88。但是在第4行会抛出ReferenceError

请解释此行为,该代码将如何逐步执行(如果可能,将使用伪汇编代码)。以及每个块的执行上下文视图。

wang19898312as 回答:谁能解释Node.js如何编译和执行这段代码

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3123317.html

大家都在问