这是因为test函数在局部空间定义,demo2函数内可以访问到,外面就访问不到了。
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:
使用eval函数来解析,并且使用jquery的each方法来遍历
var dataObj=eval("("+data+")");//转换为json对象
为什么要 eval这里要添加 “("("+data+")");//”呢?
原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
如: (function()) {}(); 做闭包操作时等。
第二种解析方式就是使用Function对象来完成,它的典型应用就是在JQUERY中的AJAX方法下的success等对于返回数据data的解析
var json='{"name":"CJ","age":18}';
data =(new Function("","return "+json))();