天天看點

JavaScript的label語句

前言:什麼?JavaScript還有label語句?這不是HTML中的标簽嗎?下面進行簡單的介紹

首先先來複習一下for循環中的break和continue

continue是退出變量為j的循環一次(也就是退出目前循環一次),然後繼續執行

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
        var num = ;
        for(var i=; i<; i++) {
            for(var j=; j<; j++){
                if(i== && j == ){
                    continue;
                }
                num++;
            }
        }
        alert(num);//這裡是24
    </script>
</body>
</html>
           

break是退出變量為j的循環,不再繼續執行(退出整個循環),然後執行外部的變量為i的循環。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
        var num = ;
        for(var i=; i<; i++) {
            for(var j=; j<; j++){
                if(i== && j == ){
                    break;
                }
                num++;
            }
        }
        alert(num);//這裡是24
    </script>
</body>
</html>
           

最後就是我們今天的主角,label語句,先來看一段代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
        var num = ;
        outermost:
        for(var i=; i<; i++) {
            for(var j=; j<; j++){
                if(i== && j == ){
                    continue outermost;
                }
                console.log(i+"---"+j);
                num++;
            }
        }
        alert(num);//這裡也是23
    </script>
</body>
</html>
           

這裡的outermost是我們的label語句,這裡的outermost我們可以自己定義,從代碼我們可以知道這裡的continue不再是直接跳出目前循環,而是直接跳轉到outermost哪裡,從哪裡開始執行,是以對于最後結果也就很正常了。另外對于這裡的label語句後的(:)是一定不能少的。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
        var num = ;
        outermost:
        for(var i=; i<; i++) {
            for(var j=; j<; j++){
                if(i== && j == ){
                    break outermost;
                }
                console.log(i+"---"+j);
                num++;
            }
        }
        alert(num);//這裡是18。break會退出變量為i的循環,也會退出變量為j的循環
    </script>
</body>
</html>
           

最後我們還可以寫在for循環中間

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
        var num = ;
        for(var i=; i<; i++) {
            for(var j=; j<; j++){
                outermost:
                if(i== && j == ){
                    break outermost;
                }
                console.log(i+"---"+j);
                num++;
            }
        }
        alert(num);//這裡是25
    </script>
</body>
</html>
           

繼續閱讀