如何让一个字符串执行?
数据库 2025-10-06 16:24:32
0
虽然eval()函数有这个功能但是何让我们还是避而远之,能不用尽量不要用。eval的个字执行环境比较混乱,它会查找当前执行的上下文环境从而导致混乱。
Function取代eval()方法的是new Function 即window.Function,不受上下文作用域的云南idc服务商影响
let z = 3; let a = var a=1;return x+y+z; //最后一个参数是字符串 前面的参数是函数的形参 let fn = new Function("x","y","z",a); console.log(fn.toString()); //function anonymous(x,y,z) { var a=1;return x+y+z} // console.log(fn(1,2)); //NaN //console.log(fn(1,2,3)); //6vm[2]vm.runInThisContext ()在当前全局上下文中运行代码并返回结果。运行代码不能访问本地范围,执行但是何让可以访问当前的云服务器提供商全局对象。
const vm = require(vm); const vmResult = vm.runInThisContext(localVar = "vm";); console.log(vmResult) //vm console.log(localVar) //vm
const vm = require(vm); let localVar = initial value; const vmResult = vm.runInThisContext(localVar = "vm";); console.log(`vmResult: ${ vmResult},个字 localVar: ${ localVar}`); // Prints: vmResult: vm, localVar: initial value const evalResult = eval(localVar = "eval";); console.log(`evalResult: ${ evalResult}, localVar: ${ localVar}`); // Prints: evalResult: eval, localVar: eval因为vm.runInThisContext ()不能访问本地作用域,所以 localVar 没有更改。符串相比之下,执行eval ()确实可以访问本地范围,何让因此会更改值 localVar。个字
符串