//PrintWriter out = response.getWriter();
//out.print("{name:'Michael',email:'[email protected]'}");
//out.close();
上面的3行代码是我在servlet的demo中响应ajax请求写的 var temp=xmlhttp.responseText;
//alert(temp)的结果是:{name:'Michael',email:'[email protected]'}
eval("data = "+temp);
alert("name="+data.name);
alert("email="+data.email);
xmlhttp.close;
/*
define = "{name:'Michael',email:'[email protected]'}";
eval("data = "+define);
alert("define typeof:"+typeof(define));
alert("data typeof:"+typeof(data));
alert("name:"+data.name);
alert("email:"+data.email);
*/
注释掉的是正确例子的代码,其中eval("data = "+define)这句创建了一个data对象,而我的同样代码不行打印出来还是string不是object。
帮我看下 我的代码错在哪里,是不是因为少了前后两个分号,js里面字符串转成Object是怎么做的
//out.print("{name:'Michael',email:'[email protected]'}");
//out.close();
上面的3行代码是我在servlet的demo中响应ajax请求写的 var temp=xmlhttp.responseText;
//alert(temp)的结果是:{name:'Michael',email:'[email protected]'}
eval("data = "+temp);
alert("name="+data.name);
alert("email="+data.email);
xmlhttp.close;
/*
define = "{name:'Michael',email:'[email protected]'}";
eval("data = "+define);
alert("define typeof:"+typeof(define));
alert("data typeof:"+typeof(data));
alert("name:"+data.name);
alert("email:"+data.email);
*/
注释掉的是正确例子的代码,其中eval("data = "+define)这句创建了一个data对象,而我的同样代码不行打印出来还是string不是object。
帮我看下 我的代码错在哪里,是不是因为少了前后两个分号,js里面字符串转成Object是怎么做的
var data = eval('(' + define + ')');
alert(data.name);
json.js里就是这么写的。
可能跟解释方式有关系吧。。
上面也没有看出差别来
var data = eval("{}");
alert(data);
var data = eval("({})");
alert(data);
你测试下就知道了。。第一个eval直接把{}执行了没有返回值,第二个则是执行并且返回了值
也就是说。。加()能返回值
(function () {
alert("wc");
})();
和这个的道理是一样的。。
这个就是返回了那个匿名的func,然后在执行它。
var num = 1;
var data = eval("{n : num ++}");
alert(num);
var num = 1
var data = eval("({n : num ++})");
alert(num);
^o^
快升星星了期待早日结贴谢谢~~
var xmlhttp.responseText="{name:'Michael',email:'[email protected]'}";
var temp="("+xmlhttp.responseText+")";
eval("data = " + temp);
alert("name="+data.name);
alert("email="+data.email);为什么temp是字符串 而data是对象类型了
因为用eval函数处理过了
这个的意思是
data = {name:'Michael',email:'[email protected]'}
所以data自然是obj类型了如果你这样写的话就不必加()了即temp = xmlhttp.responseText;因为
data = eval('(' + temp + ')');这样的东西涉及到返回所以才加那个()
//为什么temp是字符串 而data是对象类型了
因为用eval函数处理过了三星帅哥 你这个回答好有魄力 -_-||
但是............