eval() 函数 解析json对象

eval在js中用来运行以js源码组成的字符串。

可以用来改变全局或者局部变量,例如:

var globalEval = eval;     //定义全局eval函数别名
var a ='global', b = 'global';    //全局变量
function c()
{
  var a = 'local';      //局部变量
eval('a+="changed"');  //直接更改局部变量的值
 return a;      //返回更改后的局部变量
}
 function d()
{
   var b = 'local';
   globalEval("b+='changed'");
   return b;
} 
    
console.log(c(), a);            //localchanged                       global
console.log(d() , b)           //local                                         globalchanged

严格模式下,其更像运算符,不可以将其赋给eval的全局函数别名。

json字符集

var data=" 

root: 

{name:'1',value:'0'}, 
{name:'6101',value:'北京市'}, 
{name:'6102',value:'天津市'}, 
{name:'6103',value:'上海市'}, 
{name:'6104',value:'重庆市'}, 
{name:'6105',value:'渭南市'}, 
{name:'6106',value:'延安市'}, 
{name:'6107',value:'汉中市'}, 
{name:'6108',value:'榆林市'}, 
{name:'6109',value:'安康市'}, 
{name:'6110',value:'商洛市'} 
]
}"; 

解析服务器返回的json数据时,用eval("("+data+")")防止当成js语句执行,因其有"{}"符号,

例:

var dataObj=eval("("+data+")");//转换为json对象

使用$("#name").text(""(+dataObj.root.name+)"");

原文地址:https://www.cnblogs.com/ouyangping/p/6582621.html