比如说你现在要运行一个可变的方法
function
name1(){……}
function
name2(){……}
var
m="name1"
eval(m+'()')//运行name1()
m='name2'
eval(m+'()')//运行name2()
这个是可以把字符串代码,直接当做js运行。比如 var ss="alert(1)"
这个时候ss保存的是文本。
使用 eval(ss)这样就相当于,执行了ss里面的js语句。
常用语一些json数据的转换中。
比如ajax获取了服务器传过来的json数据,是字符串格式的 “{'2' , '3'}”, 通过eval(content),将其转换成js对象,就可以直接读取其中字段了。
json其实可以理解为字符串化的js对象,eval是执行一段一字符串方式存在的js代码。所以调用eval其实就是把json这个字符串化的对象转成js的对象
不过,eval不安全,尽量少用eval。
json转对象,可以直接调用系统提供的JSON.parse()方法