eval函数欺负我

var str = eval('('+ jsonString +')');  
 
1、为什么要加括号?  
 
加上圆括号的目的是迫使eval函数在评估JavaScript代码的时候强制将括号内的表达式(jsonString)转化为对象,而不是作为语句(statement)来执行。  
例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。  
 
2、JSON格式的名字部分为什么要加引号?
 因为eval函数会将{foo:”bar”}解释成合法的JavaScript语句,而非表达式。但是人们往往想要的是让eval将这段代码解释成一个对 象。所以JSON格式会强制你去在名字的外侧加上引号再结合圆括号,这样eval就不会错误的将JSON解释成代码块。 

posted on 2011-09-08 16:47  Yinkan  阅读(289)  评论(0编辑  收藏  举报

导航