javascript数组无法输出问题

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">

    var infos = [[0,1,2,3,4,5,6,7,8,9],[0,1,2,3]]
        infos[0][0]= "小A";
    infos[0][1] = "女";
    infos[0][2] = 21;
    infos[0][3] = "大一";
        infos[1][0] = "小B";
    infos[1][1] = "男";
    infos[1][2] = 23;
    infos[1][3] = "大三";
    infos[2][0] = "小C";
    
document.write(infos[0][1]);

</script>
</head>
<body>
</body>
</html>

此时在浏览器内无输出,但若注释掉(infos2 = "小C";)这一句,马上可以显示。我检查过输入时的字符,没有错误,十分迷惑为什么从这一行开始浏览器会无法输出?谢谢!

阅读 4.8k
4 个回答
var infos = [[0,1,2,3,4,5,6,7,8,9],[0,1,2,3]]


  • 很明显,你这句话的意思是定义一个数组,该数组有两个元素,分别是[0,1,2,3,4,5,6,7,8,9] 和[0,1,2,3],所以不管你怎么改变这两个元素的值,infos[0][1] = "女";//这是改值,而不是赋值,她的原始值是1都没问题。

  • infos[2][0] = "小C";这句话的意思是,infos这个数组的第三个元素也是一个数组,且第一位是“小C”,问题是,infos[2]你都没定义,相当于它就是undefined,那给undefined[0]赋值,当然会报错啦

因为你声明的infos数组长度为2,所以数组下标越界,访问不到infos[2]

infos[2] = [];
infos[2][0] = 'xx'

这个问题……呃……发现许多用户提的问题好基础好基础……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题