- eval
因為會取外界的變數,所以不乾淨的執行
let a = 2
eval('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
複製程式碼