<!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";)这一句,马上可以显示。我检查过输入时的字符,没有错误,十分迷惑为什么从这一行开始浏览器会无法输出?谢谢!
这个问题……呃……发现许多用户提的问题好基础好基础……
infos[2] = [];
infos[2][0] = 'xx'
因为你声明的infos数组长度为2,所以数组下标越界,访问不到infos[2]
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]赋值,当然会报错啦