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

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


牛魔王的故事
浏览 288回答 4
4回答

慕田峪7331174

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

慕姐4208626

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("你好!")');
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript