gpt4 book ai didi

javascript - Node 的 REPL 无法识别 block 代码

转载 作者:搜寻专家 更新时间:2023-10-31 23:47:15 25 4
gpt4 key购买 nike

我正在尝试在 Node 的 REPL 中编写一个简单的代码,但遇到了一些困难:

当一次输入一行命令时,一切正常,
但是当用括号 block { ... code ... }
包装它时(并在每一行后按回车键)我在结束一行 (}) 后收到错误。

enter image description here

正如您在我添加的图像中看到的那样 - 执行相同的代码,一次一行,运行良好。

最佳答案

您的解释器认为您将创建一个对象文字,就像 { var: x } 那样。 { 变量 x; } 不是一个好的对象语法,因为在标识符 var 之后应该有一个冒号,而不是 x。因此,SyntaxError

您可以强制解析器认为它毕竟是一个代码块,方法是在前面加上它实际上是一个代码块的任何提示:

label: { var x; }

if (true) { var x; }

do { var x; } while (false);

编辑:另外,请注意没有充分的理由这样做。如果您不使用代码块作为流程控制语句的语句组,或作为标签的目标,它就完全没有用(并且是难以跟踪错误的潜在来源,正如您所发现的)。

在其他语言中,您可能正在控制变量的范围(我想您希望确保 x 在 block 外不可见?)。在 JavaScript 中,只有函数有作用域。因此,要将变量与周围环境隔离开来,您需要一个函数:

{
var x1;
};
x1; // undefined

(function() {
var x2;
})();
x2; // Uncaught ReferenceError: x is not defined

关于javascript - Node 的 REPL 无法识别 block 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34871840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com