动态执行js
这篇说下javascript中动态执行js的方式。就是现在有一段儿js代码的字符串,我们要去执行这段儿js代码,现有如下四种方式来实现
- eval:同步执行,当前作用域
- setTimeout:异步执行,全局作用域
- script标签:同步执行,全局作用
- Function:同步执行,全局作用域
1. eval
var a = 1function exec(code) {var a = 2eval(code)
}exec('console.log("a:", a)') // a: 2
2. setTimeout
大家对setTimeout肯定是不陌生了,但是setTimeout还有另一种使用方式,就是setTime的第一个参数还可以传递一个字符串,并且会去执行这段儿js代码的字符串:
var a = 1function exec(code) {var a = 2setTimeout(code, 0)
}exec('console.log("a:", a)') // a: 1