在绝大多数编程语言中,如果if、for、while等语句的内容中仅有一条语句,可以省略花括号。
在这里,for循环没有花括号,所以,其等价于:
for(i = 0; i < arr1.length; i++){
for(j = 0; j < arr1[i].length; j++){
alert(arr1[i][j])
}
}
alert(arr1[1]);
也就是说,第一个for循环的循环体只有一个for循环,而这个for循环也没有花括号,所以这个for循环的循环体只有一个alert(arr1[i][j]),另外一条语句alert(arr1[1])不是两个for循环的循环体,要在两个循环都执行完毕后才会执行到。
不要被代码的缩进给迷惑了。同时提醒,良好的编码习惯应该不管循环体有几条语句,都加上花括号,以免引起和这里类似的错误。
没有花括号的话他的范围只是相当于循环了下一条语句