表达式 eval("function(x) { return x*x}") 破坏了 Node.js 控制台

2023-12-06

当我在 node.js 控制台中输入类似的内容时:

var f = eval("function(x) { return x*x}");

它不会计算表达式并等待我输入其他内容。

enter image description here

为什么会发生这种情况?为什么我不能在这个表达式之后输入另一个表达式?


function(x) { return x*x}

是一个错误(在控制台中输入它来检查),因此 Node 的 REPL 等待更多。

如果要构建并分配函数,则必须评估表达式,即返回值的语句。通常的解决方案是用括号关闭函数表达式。

你可以写

var f = eval("(function(x) { return x*x})");

or

var f = Function("x", "return x*x");

而且当然

var f = function(x) { return x*x};

但我想你知道这个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

表达式 eval("function(x) { return x*x}") 破坏了 Node.js 控制台 的相关文章

随机推荐