JSON.parse和eval()的区别

eval方法不检查给的字符串是否符合json的格式,parse会检查json语法格式。
比如一个json字符串data:

{
    "a": 1, 
    "b": "alert(1)"
}

解析方法分别为:
var parseTest = JSON.parse(data);
var evalTest = eval('(' + data + ')');
JSON.parse会检查不符合json格式,会报错;
而eval不会解析报错,而且还会执行alert(1)弹出信息框。
结论:
建议用JSON.parse来解析json字符串,但是凡事无绝对,如果数据来源于你信任的并且格式也不大规范,或者需要执行json中代码(慎用),那用它也不是不可以。

原文地址:https://www.cnblogs.com/wsq-blog/p/10610721.html