为什么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 相关文章推荐
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
Apr 24 Javascript
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
JSON为什么那样红为什么要用json(另有洞天)
Dec 26 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
Oct 29 Javascript
js添加事件的通用方法推荐
May 15 Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 Javascript
angularjs实现天气预报功能
Jun 16 Javascript
vsCode安装使用教程和插件安装方法
Aug 24 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
Jan 09 Javascript
浅谈layui 绑定form submit提交表单的注意事项
Oct 25 Javascript
JavaScript array常用方法代码实例详解
Sep 02 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
Nov 12 Javascript
使用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 echo 输出字符串函数详解
2010/05/13 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
python每天定时运行某程序代码
2019/08/16 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
Python同时迭代多个序列的方法
2020/07/28 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
教师个人事迹材料
2014/12/17 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
Pytest中skip和skipif的具体使用方法
2021/06/30 Python