- eval
因为会取外界的变量,所以不干净的执行
let a = 2eval('console.log(a)')// 2复制代码
- new Function()
// let a = 3;let str = 'console.log(a)'let fn = new Function('a',str) //'a'为匿名函数的参数,str为函数体console.log(fn(4))// 4复制代码
- node 执行字符串
// let a = 1;let vm = require('vm')let str = 'console.log(a)'vm.runInThisContext(str)//不会读取外界的变量值,此时会报错let str = 'let a = 3;console.log(a)'vm.runInThisContext(str)//不会读取外界的变量值,此时会报错// 3复制代码