我注意到有时在 Node.JS REPL 中,它会计算当前表达式的结果, 甚至在我按下回车键之前。
但是这种行为让我困惑:它怎么知道我是否想评估它?我知道评估 4+5 并没有什么坏处,但如果它是 一个涉及繁重计算的函数怎么办? 它不会减慢我的机器速度吗?更糟糕的是,如果函数扰乱了某些内部状态(例如全局变量)怎么办?
我尝试用谷歌搜索,但没有成功。不过,我注意到两件有趣的事情:当我尝试递归地计算斐波那契数时,它会计算到 Fib(30),而不是 Fib(31)。我的猜测是,如果函数计算时间太长,Node.JS 就会放弃给我们“预览”。但我不太确定它内部是如何运作的。
那么,Node.JS 如何准确地知道它是否应该计算表达式?我们在按回车键之前看到的“结果预览”有名称吗?有办法禁用吗?