js中的eval方法转换对象时,为何一定要加上括号?
2015-09-22 18:40
603 查看
待转换的是一个Json字符串:
而使用如下这种方式调用则会抛出语法异常,
必须加上括号才行
事实上使用eval("var obj = {'name':'新欢'}")这种方式也是可行的。
{'name':'新欢'}
而使用如下这种方式调用则会抛出语法异常,
eval("{'name':'新欢'}");
必须加上括号才行
eval("(" + "{'name':'新欢'}" + ")");
原因如下:
如果不加小括号,js会将这个字符串当作一个代码段来执行,而并非表达式(js中支持{}来分隔一段代码),而一个对象的声明,恰恰是一个表达式。事实上使用eval("var obj = {'name':'新欢'}")这种方式也是可行的。
相关文章推荐
- scrapy生成json中文乱码解决
- JSP页面通过jstl进行变量累加
- JSONP实现跨域
- 【JavaScript】【CSS】前端规则摘抄
- JS function 传递时间参数无法读取的问题
- nancy 中的json问题
- el,jstl,ognl概念上的区分
- JavaScript所有保留字
- Extjs操作Dom
- JavaScript实现异步的4种方法
- js 比较日期
- 奇葩的JS数组
- json转换为map
- 项目____js实现重新提交表单&&避免重新提交表单
- DataTable转为JSON数据格式代码
- js如何终止程序
- JS高级程序设计读书笔记(第七章)
- knockoutJS学习笔记05:控制文本和外观绑定
- 无限滚动js
- MyEclipse修改默认的Servlet和jsp代码内容