为什么JS中eval处理JSON数据要加括号


Posted in Javascript onApril 13, 2015

由于Ajax的兴起,JSON这种轻量级的数据格式作为客户端与服务器之间的传输格式逐渐地流行起来,进而出现的问题是如何将服务器端构建好的JSON数据转化为可用的JavaScript对象。利用eval函数无疑是一种简单而直接的方法。在转化的时候需要将JSON字符串的外面包装一层圆括号:

var jsonObject = eval("(" + jsonFormat + ")");

为什么要加括号?

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:

alert(eval("{}");  // return undefined

alert(eval("({})");// return object[Object]

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
一个关于javascript匿名函数的问题分析
Mar 30 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
JavaScript 变量、作用域及内存
Apr 08 Javascript
Bootstrap学习笔记之css组件(3)
Jun 07 Javascript
jquery css实现邮箱自动补全
Nov 14 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
Jan 22 Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 Javascript
js实现多张图片每隔一秒切换一张图片
Jul 29 Javascript
微信小程序 生成携带参数的二维码
Oct 23 Javascript
基于JS实现视频上传显示进度条
May 12 Javascript
在vant中使用时间选择器和popup弹出层的操作
Nov 04 Javascript
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
使用window.prompt()实现弹出用户输入的对话框
Apr 13 #Javascript
jsMind通过鼠标拖拽的方式调整节点位置
Apr 13 #Javascript
javascript继承的六大模式小结
Apr 13 #Javascript
javascript制作的简单注册模块表单验证
Apr 13 #Javascript
简化版手机端照片预览组件
Apr 13 #Javascript
javascript引用类型指针的工作方式
Apr 13 #Javascript
javascript实现图片自动和可控的轮播切换特效
Apr 13 #Javascript
You might like
用PHP伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
Python深入学习之特殊方法与多范式
2014/08/31 Python
Python的Flask框架与数据库连接的教程
2015/04/20 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
Python 解决相对路径问题:"No such file or directory"
2020/06/05 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
python利用线程实现多任务
2020/09/18 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
大学班级干部的自我评价分享
2014/02/10 职场文书
学习十八大标语
2014/10/09 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python