1:eval()
eval()方法解析的时候不会判断字符串是否合法 js方法也会被执行:例如:
var jsonObj = eval('('+ jsonDate +')')
console.log( jsonObj.age );
//会先执行“alert”输出“hello” 然后才输出 23
换“JSON.parse();”方法:
var jsonDate ='{ "name":alert("hello"),"age":23 }'
var jsonObj = JSON.parse( jsonDate );
cosole.log( jsonobj.age )
// 报错 这个错误告诉我们这个字符串是不合法的
2:JSON.parse()
var jsonDate ='{ "name":"郝甜甜","age":20 }'
var jsonObj = eval('('+ jsonDate +')');
var jsonObj = JSON.parse( jsonDate );
console.log(jsonObj.name ); 都输出郝甜甜
3:注意:
上面测试时一直用单引号把包在花括号外面的标注了起来,这对引号是很关键却又是常常被忽略的,因为“eval() JSON.parser();” 这两个方法的参数只接受字符串,也就是说只能解析字符串!!
网友评论