循环json时为什么会多出一个undefined

var text='[{"id":"1","title":"Hello world!","created":"1457222400","content":"Hello world"}]';
var json=eval('('+text+')');
for(var i=0;i<json.length;i++)
t+=json[i].title+'<br>';
box.innerHTML=t;

输出的结果为什么是undefinedHello world!?

阅读 2.4k
评论
    3 个回答

    有几点建议:

    1. 出现undefinedHello主要是因为,t没有初始化,又使用了+=, undefined +"Hello world" 就成了现在的结果。
      2.最好不要使用evel,这是非常危险以及不推荐的.

    3.这段代码,改成这样可能好点。

    var text='[{"id":"1","title":"Hello world!","created":"1457222400","content":"Hello world"}]',
         t = "";
    var json = JSON.parse(text);
    for(var i=0;i < json.length; i++){
        t+=json[i].title + "</br>"
    }
    box.innerHTML = t ; 
      相似问题
      推荐文章