当我在 node.js 控制台中输入这样的内容时:
var f = eval("function(x) { return x*x}");
它不会计算表达式并等待我输入其他内容。
为什么会发生这种情况?为什么我不能在这个表达式之后输入另一个表达式?
最佳答案
function(x) { return x*x}
是一个错误(在控制台中输入它来检查),因此 Node 的 REPL 等待更多。
如果要构建并分配函数,则必须评估表达式,即返回值的语句。通常的解决方案是用括号关闭函数表达式。
你可以写
var f = eval("(function(x) { return x*x})");
或
var f = Function("x", "return x*x");
当然
var f = function(x) { return x*x};
但我想你知道这个。
关于node.js - 表达式 eval ("function(x) { return x*x}") 破坏了 node.js 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19347706/