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

如何替换JavaScript中的eval函数?附代码示例

替换代码中的eval()方法

你可以直接利用对象的方括号属性访问语法替代eval,这是更安全、高效的做法——eval会执行字符串形式的代码,存在安全风险且性能远不如直接的属性访问。

原代码的核心逻辑是拼接出环境变量的键名,再获取对应值,完全不需要用到eval。修改后的代码如下:

const v1 = 'bin';
const nvmPrefix = 'NVM_';

console.log(process.env.NVM_BIN);
// 输出: /Users/someone/.nvm/versions/node/v16.16.0/bin

// 拼接出目标环境变量的键名
const nvmBinKey = `${nvmPrefix}${v1.toUpperCase()}`;
// 直接通过方括号访问process.env的属性
const nvmBin = process.env[nvmBinKey];

console.log(nvmBin);
// 同样输出: /Users/someone/.nvm/versions/node/v16.16.0/bin

为什么要替换eval?

  • 安全风险:如果拼接的字符串来源不可控,eval可能执行恶意代码
  • 性能劣势:eval会触发JS引擎的代码解析流程,远不如直接属性访问高效
  • 可读性差:直接属性访问的逻辑一目了然,eval会让代码意图变得模糊

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:37:06