请问这段代码哪里错了?

请问这个代码哪里错了,为什么最后会出现undifaind

var mynum=new Array(70,80,66,90,50,100,89);

    var i;

    for(i=0;i<=mynum.length;i++)

    {

        if(mynum[i]<60)

        {

            document.write("成绩不及格,不输出!"+"<br>");

            continue;

        } 

        document.write("成绩"+mynum[i]+"及格,输出!"+"<br/>");

    }

http://img.mukewang.com/57d627a1000131f002660215.jpg

pureland
浏览 1996回答 13
13回答

MarlboroKay

首先你的数组长度是 length = 7 ,但是数组中的下标是0,1,2,3,4,5,6。当你的这段代码执行时: for(i=0;i<=mynum.length;i++)当i = 7 时,满足条件走进循环,但是没有满足条件的数组下标,即mynum[7]不存在所以提示,undefined。应该将for循环的条件修改为: for(i=0;i<mynum.length;i++)望采纳,谢谢。

搬砖的二狗子

原来这就是数组越界啊,一直听着异常里边有个数组越界,可惜一直没记住。

刘小六

数组下标从0开始,最大的下标为length-1,所以,你的数组访问越界了

luo3988204

再循环条件里不要等于号就可以了!数组下标是从0开始的,如果有等于号的话,那么属猪会越界,JavaScript就会包undefined的错误

郑贺威

一般这种情况用的都是for(i=0;i<mynum.length;i++),不用<=的

夜很殇37

传说中的数组越界

周君龙

 for(i=0;i<=mynum.length;i++) 把=号去掉

起伏羊

i的长度大于组长 i=7的时候取得是数组的第八个数据 但是数组的长度只有7 你下次 可以一步一步输出检查是哪儿出错

MarlboroKay

首先你的数组长度是 length = 7 ,但是数组中的下标是0,1,2,3,4,5,6。当你的这段代码执行时:  for(i=0;i<=mynum.length;i++)当i = 7 时,满足条件走进循环,但是没有满足条件的数组下标,即mynum[7]不存在所以提示,undefined。望采纳,谢谢。

空城丶Dreams

数组越界
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript