湛瞳
2016-08-09 11:44
alert(arr[1][1]);会弹出提示框
但是if中的判断条件在运行时为什么会读取不到
刚没看理解你的问题,现在再来补充一下~
你的问题是:1)if中的判断条件在运行时为什么会读取不到2)为什么(arr[1][1])可以识别,(arr[i][0])会报错
第一个问题,运行时其实已经读取到if判断条件了,所以才会出现Cannot read property '0' of underfined报错
第二个问题,当你给数组赋值之后,直接alert(arr[1][1]); 默认将字符串转换为数组形式,所以[1][1]索引的是第二个数组'##'的第二个值'#'。你把for循环位置调整之后,在那一行打一个断点,在Sources中F10分步运行就可以看到报错是在i的值为6的时候出现的,原因在于var arr = ['*','##',"***","&&","****","##*"];只定义了数组的前六个值,arr[7] = '**';则定义了第八个值;所以arr[6]即数组的第七位是没有赋值的,该位置为空,也就不存在arr[6][0]的值,因此控制台报错。
你定义数组的方式也有问题吧,好像并没有定义二维数组。
var arr = ['*','##',"***","&&","****","##*"];
这样定义的只是一维数组,为什么后面却又直接使用二维数组的方式进行索引呢?
亲们,我知道for循环的格式有问题,不过这不是我的重点啊,即使改正确了还是会有如图所示的错误,我想知道为什么(arr[1][1])可以识别,(arr[i][0])0会报错
for 循环没有把alert包含进去
代码中的for循环格式好像错了
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题