1、
var num = 1;
function test(){
var num = 2;
eval("num = 3");
return num;
}
alert(test()); //3
alert(num); //1
2、
function alertTest(){
alert(1);
}
function test(){
function alertTest(){
alert(2);
}
setTimeout("alertTest()",100);
}
test();
只有当eval被直接调用时才会在局部环境中执行,其它情况eval都是在全局环境下执行
尽量不要使用eval
1、eval存在安全性问题,它会执行所有传入的代码,包括恶意代码。
2、执行eval性能比较差,因为它必须调用js解析器