为什么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 相关文章推荐
IE8对JS通过属性和数组遍历解析不一样的地方探讨
May 06 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
Jun 02 Javascript
vue实现ToDoList简单实例
Feb 07 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
Mar 07 Javascript
详谈js遍历集合(Array,Map,Set)
Apr 06 Javascript
详解react使用react-bootstrap当轮子造车
Aug 15 Javascript
Angularjs中ng-repeat的简单实例
Aug 25 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
JavaScript面向对象精要(下部)
Sep 12 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
Jul 18 Javascript
js实现车辆管理系统
Aug 26 Javascript
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 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新手上路(十四)
2006/10/09 PHP
PHP通用检测函数集合
2006/11/25 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
Python中的两个内置模块介绍
2015/04/05 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
Linux文件系统类型
2012/02/15 面试题
优秀班组长事迹
2014/05/31 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
答辩状格式范本
2015/05/22 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL