eval

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解析器

原文地址:https://www.cnblogs.com/charling/p/3354829.html