JS常见疑点点睛(不定期更新)
来源:互联网 发布:网络共享硬盘盒 编辑:程序博客网 时间:2024/05/15 18:42
1、eval解析json时为什么要强制添加()?
var sts=eval("("+data+")"); 强制转化成json对象
为什么eval这里要添加 “("("+data+")");?
原因:这是eval本身的问题。
由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。
举例说明:
例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。
alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]
对于这种写法,在JS中,可以到处看到。
- JS常见疑点点睛(不定期更新)
- 【二狗】【汇总】【不定期更新】JS中常见笔试题
- PIC常见错误-不定期更新
- 常见背景音(不定期更新)
- MFC 常见错误(不定期更新)
- node.js学习总结(不定期更新)
- js常见问题汇总(不定期更新)
- JS练习代码库(不定期更新)
- ubuntu常见不常见用法(不定期更新)
- 不定期更新一些常见/不常见的缩写全称
- 不定期更新
- 不定期更新
- C语言不常见代码(不定期更新)
- COCOS2D-x移植常见错误(不定期更新)
- Android面试常见知识点【一】(不定期更新)
- Android面试常见知识点【二】(不定期更新)
- eclipse建javaEE项目的常见错误(不定期更新)
- c++开发中常见bug总结(不定期更新)
- 结合Domino打造全功能的Grid
- MC新手入门(九)------物理属性
- 北岛-《晴空》
- MySQL-调用存储过程和函数
- 用函数求最大公约数与最小公倍数
- JS常见疑点点睛(不定期更新)
- Android JNI的若干问题总结
- IceGrid安装
- 如何查询数据库表字段重复信息
- 椰子+树莓 Coconut Pi!(Coconut Pi (全自动的水底机械人))
- Android磁盘管理-系统源码分析(1)
- linux命令行工具
- GCC编译之如何控制共享文件导出符号
- MC新手入门(十)------事件设置