为什么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 相关文章推荐
JS控制图片等比例缩放的示例代码
Dec 24 Javascript
一个JS函数搞定网页标题(title)闪动效果
May 13 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
Feb 03 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
Mar 21 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 jQuery
Angular4如何自定义首屏的加载动画详解
Jul 26 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
Dec 14 Javascript
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
vue+axios全局添加请求头和参数操作
Jul 24 Javascript
vue3不同环境下实现配置代理
May 25 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 fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
利用进制转换压缩数字函数分享
2014/01/02 Javascript
javascript 动态创建表格
2015/01/08 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
Python join()函数原理及使用方法
2020/11/14 Python
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
物业公司采购员岗位职责
2013/12/31 职场文书
乔迁宴答谢词
2014/01/21 职场文书
父母对孩子说的话
2014/04/12 职场文书
节能环保标语
2014/06/12 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
主题班会开场白
2015/06/01 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
在js中修改html body的样式
2021/11/11 Javascript
redis sentinel监控高可用集群实现的配置步骤
2022/04/01 Redis