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,这十次之和,明白了吧

if( i==5 && j==5)
这两个条件同时满足,内侧循环需要55次。因为外侧循环前五次都不满足,此时内侧循环执行50次。

 for( ; i<10; i++){
                for( ; j<10; j++){//------------在这里执行一次for时j到10了,之后循环就再也没有进来了
                    if( i==5 && j==5){
                        break outermost;
                    }
                    num ++;
                }
            }