Javascript 为什么循环中使用[i]的值未定义?

Javascript 为什么循环中使用[i]的值未定义?,javascript,for-loop,firefox-addon,firefox-addon-sdk,Javascript,For Loop,Firefox Addon,Firefox Addon Sdk,使用Mozilla jetpack,当我执行以下代码时。。我知道链接是未定义的!!!为什么?或者如何修复它 var links = doc.querySelectorAll('#courses_menu > ul > li > a'); var linkz=links[1].href.split("?"); var i = 0; for (i=0;i<=4;i++) { var linking= links[i]; } jetpack.notification

使用Mozilla jetpack,当我执行以下代码时。。我知道链接是未定义的!!!为什么?或者如何修复它

var links = doc.querySelectorAll('#courses_menu > ul > li > a'); 
var linkz=links[1].href.split("?");

var i = 0;
for (i=0;i<=4;i++)
{
   var linking= links[i]; 
}
jetpack.notifications.show(" "+ linking); 
var links=doc.querySelectorAll('courses\u menu>ul>li>a');
var linkz=links[1]。href.split(“?”);
var i=0;

对于(i=0;i,因为循环结束时它超出范围

所以你应该

var linking;
for (i=0;i<=4;i++)
{
   linking= links[i]; 
}
var链接;

对于(i=0;iThank youuu..你是对的..我简直不敢相信这没有在我的脑海中出现!据我所知,或者我的自发测试。Javascript maintins是函数作用域,而不是块作用域。在函数返回之前,在for循环中声明的任何变量都可以被函数的其余部分访问。@seanmonster:如果你在for循环的或中声明它(例如,
for(var i..
),它只存在于for循环中。嗯,不存在。Javascript只使用函数作用域。请尝试:
var linking = "";
for (i=0;i<=4;i++)
{
   linking = linking + links[i] + " "; 
}