zoukankan      html  css  js  c++  java
  • eval、json.parse()的介绍和使用注意点

    定义和用法
    eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
    语法:  eval(string)
    参数 描述
    string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。
    返回值
    通过计算 string 得到的值(如果有的话)。
    说明
    该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
    如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。
     
    eg:
    <script type="text/javascript">
    eval("x=10;y=20;document.write(x*y)")
    document.write(eval("2+2"))
    var x=10
    document.write(eval(x+17))
    </script>
    输出:
    200
    4
    27
    处理json数据
    1、eval
    根据不同的json格式,一般有两种方式
    json为json数据
    转化json数据,使用方法统一
    var dataObj = eval("("+json+")");
    加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行
    将json数据转换为json对象
    (1)含有“节点”的json数据
    var json = {
      root:
      [
      {name:'1',value:'0'},
      {name:'2',value:'1'},
    {name:'3',value:'2'},
      ]
      }";
    如果获取对应的name和value的值,可以使用
    $(dataObj.root).each(function(i,item){
    var str = "name:"+item.name+",value:"+item.value;
    })
    (2)不含有“节点”的json数据
    var json = {"name":"1","name":"2","name":"3"}
    使用$(dataObj).each(function(i,item){
    var str = "name:"+item.name+",value:"+item.value;
    })获取对应的数据
    注意:eval使用比较危险,能不用最好就不要用,以免徒增不必要的麻烦
     
     
    2、JSON.parse(String,function())
    Strign:必选参数,为json数据
    function():可选参数,如果不为空,则为对象的每个成员调用词函数
     
    返回结果为对象或者数组,此方法与eval能达到相同的效果,简单易于使用,但此方法不支持IE6、IE7标准模式,但是可以自己下载json2.js来解决这一问题
    网址:http://www.JSON.org/json2.js
     
    使用方法:
    var dataObj = JSON.parse(json);
     
    for(var data in dataObj){
    //获取对应数据的值
    }
  • 相关阅读:
    表中表效果
    有关div的位置,隐藏显示和移动
    js 获取服务器控件的值
    JavaScript resizeBy()
    js弹出对话框
    js操作select控件的几种方法发布
    javascript
    POJ2135(最小费用最大流模板)
    吐槽(2012/5/21)
    POJ2391(网络流)
  • 原文地址:https://www.cnblogs.com/xiaochao12345/p/4533338.html
Copyright © 2011-2022 走看看