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

标签 node.js eval

当我在 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})");

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/

相关文章:

node.js - sequelize datatypes.NOW 函数不生成时间戳

node.js - 使用 Mongoose 库更新 Express JS 中的数据库架构

python - 在 python 中使用 compile 和 eval 时出现奇怪的问题

node.js - 无法发布版本到 npm?

node.js - 将 native 模块构建为 Electron 应用程序的一部分

javascript - JavaScript eval 的这种使用是否可以接受?

java - 在 Java 中按名称设置变量

javascript - 如何在 javascript 中将文本框设置为 eval()

r - 替换引用表达式中的已知变量

javascript - 如何从路由文件中在 socket.io 中发出事件?