You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中是否存在可将字符串转换为可执行表达式的函数?

实现方法

JavaScript 原生支持字符串转可执行表达式的能力,可以实现你要的效果,常用方案有两个:

  • 使用全局eval()方法
    eval()会直接将传入的字符串作为JavaScript代码解析运行,返回表达式的执行结果,修改代码即可得到预期输出:
    console.log(Math.sqrt(4)); // 输出计算结果4
    let str = 'Math.sqrt(4)';
    console.log(eval(str)); // 执行字符串表达式,同样输出4
    

    安全提示:eval()运行在当前调用的作用域中,可以访问局部变量,若传入的字符串来自不可信的外部输入,会存在严重的代码注入风险,生产环境非必要不推荐使用。

  • 使用Function构造函数
    通过Function构造器动态生成执行表达式的函数,调用后即可拿到计算结果,这种方式默认运行在全局作用域,不会访问局部作用域的变量,风险相对eval更低:
    console.log(Math.sqrt(4)); // 输出计算结果4
    let str = 'Math.sqrt(4)';
    const getResult = new Function(`return ${str}`);
    console.log(getResult()); // 输出4
    

所有动态执行字符串代码的方案都存在安全隐患,使用前必须严格校验字符串内容来源,禁止直接执行未经处理的用户输入。

内容的提问来源于stack exchange,提问作者misha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 20:42:19