问题描述
- javascript变量定义作用域问题
-
如下代码输出结果为什么是10,我认为应该是55。<!DOCTYPE html> <head> <title> Break Statement </title> </head> <body> <script type="text/javascript"> var num = 0, i = 0, j = 0; outermost: for( ; i<10; i++){ for( ; j<10; j++){ if( i==5 && j==5){ break outermost; } num ++; } } alert(num);// i think it should be 55. </script> </body> </html>
解决方案
当内层循环结束回到你设定的地方时候,再循环,j已经不是0,而是10了,总是不满足内层,所以就在i 这里循环十次,退出num=10记录的是
i=0 ,j=0...9,这十次之和,明白了吧
解决方案二:
for( ; i<10; i++){
for( ; j<10; j++){//------------在这里执行一次for时j到10了,之后循环就再也没有进来了
if( i==5 && j==5){
break outermost;
}
num ++;
}
}
解决方案三:
JavaScript中变量作用域问题
JavaScript的变量作用域问题
JavaScript变量作用域的一个问题
解决方案四:
if( i==5 && j==5)
这两个条件同时满足,内侧循环需要55次。因为外侧循环前五次都不满足,此时内侧循环执行50次。
时间: 2024-10-03 10:41:19