为了账号安全,请及时绑定邮箱和手机立即绑定

请问这段代码哪里错了?

请问这段代码哪里错了?

pureland 2016-09-12 11:57:46
请问这个代码哪里错了,为什么最后会出现undifaindvar 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/>");    }
查看完整描述

13 回答

已采纳
?
MarlboroKay

TA贡献189条经验 获得超236个赞

首先你的数组长度是 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++)

望采纳,谢谢。


查看完整回答
10 反对 回复 2016-09-12
?
搬砖的二狗子

TA贡献2条经验 获得超4个赞

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

查看完整回答
1 反对 回复 2016-09-13
?
刘小六

TA贡献1条经验 获得超1个赞

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

查看完整回答
1 反对 回复 2016-09-12
?
luo3988204

TA贡献1条经验 获得超0个赞

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

查看完整回答
反对 回复 2016-09-13
?
郑贺威

TA贡献4条经验 获得超1个赞


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

查看完整回答
反对 回复 2016-09-13
?
夜很殇37

TA贡献6条经验 获得超2个赞

传说中的数组越界

查看完整回答
反对 回复 2016-09-13
?
周君龙

TA贡献2条经验 获得超0个赞

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

查看完整回答
反对 回复 2016-09-12
?
起伏羊

TA贡献31条经验 获得超25个赞

//img1.sycdn.imooc.com//57d6606a00014b4511030740.jpg

i的长度大于组长 i=7的时候取得是数组的第八个数据 但是数组的长度只有7 

你下次 可以一步一步输出检查是哪儿出错

查看完整回答
反对 回复 2016-09-12
?
MarlboroKay

TA贡献189条经验 获得超236个赞

首先你的数组长度是 length = 7 ,但是数组中的下标是0,1,2,3,4,5,6。

当你的这段代码执行时:

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

当i = 7 时,满足条件走进循环,但是没有满足条件的数组下标,即mynum[7]不存在

所以提示,undefined。

望采纳,谢谢。

查看完整回答
反对 回复 2016-09-12
?
空城丶Dreams

TA贡献6条经验 获得超1个赞

数组越界

查看完整回答
反对 回复 2016-09-12
?
stone310

TA贡献361条经验 获得超191个赞

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

这里不能用<=,用<,因为如果i=mynum.length,那么mynum[i]这个值是不存在的,所以提示undefined

查看完整回答
反对 回复 2016-09-12
  • 13 回答
  • 0 关注
  • 1995 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信