eval: 同步,当前作用域
var a=1;
function exec(code){
eval(code)
}
exec('console.log("a", a)')
console.log('sync');
setTimeout(第一个参数能编译字符串):异步,全局作用域
var a=1;
function exec(code){
var a= 2;
setTimeout(code)
}
exec('console.log("a", a)')
console.log('sync');
script: 同步,全局作用域 缺点:会产生一个标签
var a=1;
function exec(code){
var a= 2;
const script =document.createElement('script');
script.innerHTML= code;
document.head.appendChild(script);
}
exec('console.log("a", a)')
console.log('sync');
Function: 同步,全局作用域
var a=1;
function exec(code){
var a= 2;
new Function(code)();
}
exec('console.log("a", a)')
console.log('sync');