代码之家  ›  专栏  ›  技术社区  ›  user3552178

如何替换eval函数?复制

  •  -1
  • user3552178  · 技术社区  · 1 年前

    这是我的代码

    const v1 = 'bin';
    const nvmProfix = 'NVM_';
    
    console.log(process.env.NVM_BIN);
    //it prints NVM_BIN=/Users/someone/.nvm/versions/node/v16.16.0/bin
    
    const nvmBinVar = `process.env.NVM_${v1.toUpperCase()}`;
    console.log(nvmBinVar);
    //it prints process.env.NVM_BIN
    
    const nvmBin = `${eval(nvmBinVar)}`;
    console.log(process.env.NVM_BIN);
    //it prints NVM_BIN=/Users/someone/.nvm/versions/node/v16.16.0/bin
    

    请问如何替换eval()?

    1 回复  |  直到 1 年前
        1
  •  1
  •   Mr. Polywhirl    1 年前

    你不能只用括号符号吗?

    const
      nvmProfix = 'NVM_',
      v1 = 'bin',
      nvmBin = `${nvmProfix}${v1.toUpperCase()}`;
    
    // Prints NVM_BIN=~/.nvm/versions/node/v16.16.0/bin
    console.log(process.env.NVM_BIN); // Static access
    
    // Prints NVM_BIN=~/.nvm/versions/node/v16.16.0/bin
    console.log(process.env[nvmBin]); // Dynamic access