gpt4 book ai didi

javascript - Eval函数表达式

转载 作者:行者123 更新时间:2023-11-28 11:29:46 25 4
gpt4 key购买 nike

虽然我期待这段代码

var  a = eval("function() { return 1; }");

console.log(a());

在控制台中打印“1”,我收到语法错误Uncaught SyntaxError: Unexpected token (。我在这里做错了什么?

<小时/>

我正在使用一个允许在配置中定义 javascript 函数的框架,因此除了使用 eval 之外我别无选择。

最佳答案

function 关键字在 Javascript 中是不明确的:它可以开始函数声明(语句)或函数文字(表达式)。当在语句位置遇到function时,解析器会自动优先选择声明而不是表达式。由于 eval 需要一个语句,这会使您的代码无效——声明需要函数名称。您可以提供名称:

eval('function foo() {...}')

或者强制解析器进入表达式模式

foo = eval('( function () {...} )')

在这种情况下,function 将被视为文字。

这与 {} 基本相同,它可以是 block ,也可以是对象文字。像 eval('{1:2}') 这样的东西会因为完全相同的原因而失败(语句优先于表达式)。

关于javascript - Eval函数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56040225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com