您所在的位置:小祥子 » 编程 » JavaScript » 正文

eval、json.parse()的介绍和使用注意点

时间:2015-05-27 编辑:super1234 来源:本站整理
定义和用法 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){ //获取对应数据的值 }
关键词:json 使用