json.parse()和eval的区别到底在哪里该怎样选取
如果是专门操作JSON,当然用JSON.parse()。我写了六年JS,到今年才用了一次eval(),因为有人把操作数据属性的代码存在了数据库里,汗。。。
■网友
【json.parse()和eval的区别到底在哪里该怎样选取】 出于安全考虑用json.parse,它会自动检测是否符合json格式。而eval不会检测是否符合格式,如果字符串中有js代码时,eval会一并执行,例如:\u0026lt;html\u0026gt;\u0026lt;head\u0026gt;\u0026lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"\u0026gt;\u0026lt;title\u0026gt;JaneYork的博客——eval测试\u0026lt;/title\u0026gt;\u0026lt;/head\u0026gt;\u0026lt;body\u0026gt;\u0026lt;input type="button" value="https://www.zhihu.com/api/v4/questions/53098924/测试" onclick="f()"\u0026gt;\u0026lt;/body\u0026gt;\u0026lt;script type="text/javascript"\u0026gt;function f(){\t/* eval("("+alert(123)+")"); */这里会弹框\tvar test = \u0026#39;{"b" : window.location.href="https://www.baidu.com" }\u0026#39;;这里会跳转\teval("("+ test +")");};\u0026lt;/script\u0026gt;\u0026lt;/html\u0026gt;详细理解JSON请看:详细理解JSON - JaneYork - 博客园
,eval执行了js代码,跳转到第三方网站,很不安全。
如果不清楚格式的话,可以使用json格式在线校验工具:在线JSON校验格式化工具(Be JSON)
推荐阅读
- 在路上|在路上开廉价车和豪车的区别,看看网友的真实体会
- 啥是微信开发WEB前端
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 软件产品与传统商品、软件行业与传统行业的区别是啥
- |有种粗心叫“错把喉癌当成咽喉炎”,医生通俗告诉你两者区别在哪
- Python3.4和3.5区别大么
- 计科,通信工程,电子信息工程这三个专业有啥区别
- 电子班牌和智能班牌有啥区别
- 类似于「创意周末」、「懒人周末」、「周末去哪儿」这类城市生活应用有啥区别
- toB和toC公司及业务上的区别?
