为了账号安全,请及时绑定邮箱和手机立即绑定

请问javascript JSON.parse和eval的区别是什么

请问javascript JSON.parse和eval的区别是什么

牛魔王的故事 2019-08-03 10:03:47
请问javascript JSON.parse和eval的区别是什么
查看完整描述

4 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

在代码中使用eval是很危险的,特别是用它执行第三方的JSON数据(其中可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身。该方法可以捕捉JSON中的语法错误,并允许你传入一个函数,用来过滤或转换解析结果。如果此方法以备Firfox 3.5 、IE8 及 Safari 4 原生支持。大多数javascript类库包含的JSON解析代码会直接调用原生版本,如果没有原生支持的话,会调用一个略微不那么强大的非原生版本来处理。

查看完整回答
反对 回复 2019-08-05
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

JSON.parse()用来将标准json字符串转换成js对象;
eval()除了可以将json字符串(非标准的也可以,没有JSON.parse()要求严格)转换成js对象外还能用来动态执行js代码
例如:JSON.parse('{"name":"张三"}')能被成功转换,但是JSON.parse('{name:"张三"}')、JSON.parse('{\'name\':"张三"}')和JSON.parse('{"name":\'张三\'}')都是不能转换的;然而后面那三个可用用eval()来转换;另外eval()还能执行js代码,如:eval('alert("你好!")');

查看完整回答
反对 回复 2019-08-05
  • 4 回答
  • 0 关注
  • 287 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信