zoukankan      html  css  js  c++  java
  • eval是做什么的?

    eval()的作用:

    把字符串参数解析成JS代码并运行,并返回执行的结果;

    例如:

    eval("2+3");//执行加运算,并返回运算值。
    eval("var age = 10");//声明一个age变量

    eval的作用域

    function a(){
       eval("var x=1");//等效于 var x = 1;
       console.log(x);//输出1
    }
    a();
    console.log(x);//错误x没有定义

    说明作用域在它所有的范围内容有效

    示例2:

    function a (){
       window.eval("var x= 1");//等效于window.x = 1;定义了全局变量
       console.log("x");//输出1
    }
    a();
    console.log(x);//输出1

    这段代码悲剧了?在IE8及IE8一下的版本就不支持了。 

     解决方法:

    functiona(){
     if(window.execScript){ // 支持IE8及以下的版本
      window.execScript("var x=1");
     }
     else{ //常用的浏览器都支持
      window.eval("var x=1");
     }
     console.log(x);
    }
    a();
    console.log(x);

    注意事项

    应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。

    其它作用

    由JSON字符串转换为JSON对象的时候可以用eval,例如:

    var json ="{name:'Mr.CAO',age:30}";
    var jsonObj = eval("("+json")");
    console.log(jsonObj);
  • 相关阅读:
    Redis系统管理
    Redis简介和安装
    在Azure中搭建Ghost博客并绑定自定义域名和HTTPS
    ML:单变量线性回归(Linear Regression With One Variable)
    PRML Chapter4
    Windows+Idea安装Hadoop开发环境
    包装类
    认识J2SE
    Spark基本原理
    SQL总结
  • 原文地址:https://www.cnblogs.com/psxiao/p/11569954.html
Copyright © 2011-2022 走看看