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+)"");