Clojure在像这样的语言中Scheme,我确实很喜欢在 REPL 驱动模式下编写代码,当您在编辑器中编写一段代码时(Emacs在我的例子中),将其发送到您的 REPL,使用它,然后返回到编辑器,修复发现问题并再次将代码发送到 REPL。
我尝试对 做同样的事情Node.js,如果我限制自己只使用ES5语法,它会起作用。但如果我使用、和 等ES6功能,我预计会在重新评估我的声明时出现错误:constletclass
> let foo = 1;
> let foo = 2;
TypeError: Identifier 'foo' has already been declared
Run Code Online (Sandbox Code Playgroud)
当我重新评估我的代码时,是否有任何Node.js REPL参数,或者可能是 patched REPLs,甚至是一些神奇的模式会清除现有的声明?Emacs这样我就能够以Node.js这种方式编写代码,而无需不断考虑我正在使用哪种语法和/或需要REPL在每次重新评估时手动重新启动。