<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>二维数组</title> <script type="text/javascript"> var my=new Array(); //先声明一维 for (var i=0;i<3;i++) //一维长度为3 { var my[i]=new Array(); //再声明二维 for(var j=0;j<6;j++) //二维长度为6 { my[i][j]=i*j; // 赋值,每个数组元素的值 document.write(my[i][j]); } } </script> </head> <body> </body> </html>
my是一个数组,my[i]是一个数组元素,你再把它当做变量名当然非法.
这个问题其实很有意思,我们先来看这个例子
var my=12;
var my="ok";
document.write(my);
不会报错,结果输出是ok;其实JavaScript中允许变量名覆盖。我们再来看看你这个问题var my[i]=new Array();
这个行代码是错误的,my[i](或者my[1])被编译器解析为是错误的命名,所以就会出错。