我能得到“价值”吗? JavaScript 中的任意语句(类似于 eval,但没有 eval)
在 JavaScript 中,有一种方法可以以与 function() { return eval("if (true) { 1 }"); 相同的方式获取语句的“值”。 } 返回“1”;
function() { return if (true) { 1 } }
以及我尝试过的所有类似排列都不是有效的语法。
eval
是否只是拥有特殊的能力来确定表达式中语句的“最后一个”值?
用例是一个 REPL,它计算任意表达式并返回结果。 eval 有效,但我想将它包装在函数中。
In JavaScript is there a way to get the "value" of a statement in the same way that function() { return eval("if (true) { 1 }"); }
returns "1";
function() { return if (true) { 1 } }
and all similar permutations I've tried are not valid syntax.
Is eval
just blessed with special powers to determine the "last" value of a statement in an expression?
Use case is a REPL that evaluates arbitrary expressions and returns the result. eval works, but I want to wrap it in function.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
但这实际上并没有比
eval
做更多的事情,所以我猜你一定想在返回eval
的返回值之前对其进行一些操作?例如:(
有关 typeof 运算符的更多信息)
But that really doesn't do anything more than what
eval
does, so I'm guessing you must want to do things with the return value ofeval
before returning it?E.g.:
(More on the typeof operator)
要评估 javascript 中的任意 javascript 代码,您有三个选项
To evaluate arbitrary javascript code in javascript you have three options
您可以使用 || 获取不为 null/undefined/0 的 first 值:
您可以使用 && 获取如果首先没有找到短路 null/undefined/0,则为 最后 值:
You can use || to get the first value that isn't null/undefined/0:
You can use && to get the last value, if no short-circuiting null/undefined/0 is found first: