eval全局作用域和局部作用域的坑!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eval全局作用域和局部作用域的坑!相关的知识,希望对你有一定的参考价值。

1、eval 是个函数,他可以被赋值给变量,例如   var evalg = eval;  evalg("alert(1)");

2、eval被赋值时,也会把当前eval所处的变量作用域也赋值过去;
    var x = 1,evalg = eval;
    function a(){
        var x = 3;
        eval("alert(x)");//3
        evalg("alert(x)");//1
    }

//IE9之前的浏览器  没有全局eval的概念, 但是可以用  execScript()来代替

var x = 1;
    function a(){
        var x = 3;
        eval("alert(x)");//3
        execScript("alert(x)");//1
    } 

ECMAScript5严格模式  eval将成为保留字

以上是关于eval全局作用域和局部作用域的坑!的主要内容,如果未能解决你的问题,请参考以下文章

什么是作用域?什么是上下文?浅解

构建自己的AngularJS - 作用域和Digest

JS的作用域和预解析

JavaScript全局作用域函数作用域和块级作用域的区别

文件作用域和全局作用域的区别

前端之JS