【javascript】关于eval("("+result+")")的认识

来源:互联网 发布:大数据平台是什么 编辑:程序博客网 时间:2024/06/07 23:17

       之前对于eval("("+result+")")这个函数比较困扰,查看资料现在清楚了很多,现将个人理解贴出来,一起学习共同进步!

       起因是做现项目时,参用很久之前一个项目的代码,少了一行eval("("+result+")");控制台始终运行不出结果,查阅w3c也不是很清楚——点击打开链接。

       

       大致意思是:eval方法是将字符串转变成可以执行的javascript代码。

       但更具体的情况(前后端传输json数据,后端echo json_encode()方法把Array形式的查询结果自动转换成json格式输出)时,


       这时,如果不加eval函数js是获取不到里面的属性的,根本原因在于——由于json是以“{}”的方式来开始以及结束的,在js中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

       所以把后台传输过来json字符串转换成js的json对象,js就能获取其中的属性了

       

       弄懂了这个,引发了更深层的思考,同样都是后端json_encode输出到前端js,为什么很多js没加eval函数都可以自动转换,后来看到是因为ajax已经加过dataType:'json'了。(制定url的返回值以json格式)

       猛然看到自己之前忘记写ajax第四个参数,如果加上,就不需要再写eval函数了

       

      


      PS:(网上资料)——点击打开链接

       



阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝qb充错号了怎么办 快手充错了怎么办 每日优鲜怎么办会员 每日优鲜怎么办会员卡 微信收付款没到怎么办 交宽带费还连不上网怎么办 失业金忘记签到怎么办 失业金未到账怎么办 atm转账未到账怎么办 失业金这个月没到账怎么办 失业金停发了怎么办? 跨行转账没到账怎么办 医疗报销不到账怎么办 转账正在处理中怎么办 被花椒刺了怎么办 小米8来电黑屏怎么办 发语音聊天黑屏怎么办 店倒闭了会员卡怎么办 淘宝退货不理人怎么办 平安银行车主信用卡怎么办 支付宝信用差怎么办 建行储蓄卡限额怎么办 微信余额限额怎么办 储蓄卡支付限额怎么办 微信当月限额怎么办 微信限额2000怎么办 2018微信限额怎么办 微信当日限额怎么办 微店交易异常怎么办 微信金额上限怎么办 微信限额怎么办调 微信单日限额怎么办 吉祥航空航班取消怎么办 移动多的话费怎么办 芒果打了农药怎么办 早餐吃多了怎么办 移动话费充值错了怎么办 没钱充值话费怎么办 微信缴费至空号怎么办 在微信充错话费怎么办 欠了花呗还不起怎么办