JavaScript學習筆記——語句

if語句
if(true){
alert("Greater than 25;");}
else{
alert("less than or equal to 25;");}

循環語句
do-while循環

do{
    alert(i);
}while(i<10);

while循環

while(i<10)
{alert(i);}

for循環

for(var i=0;i<10;i++)
{
    i+=2;
}

for-in語句

for-in語句是一種精確的迭代語句,可以用來枚舉對象的屬性。

for(var propName in window)
{
    document.write(propName);
}

ECMAScript對象的屬性沒有順序,所以通過for-in循環輸出的屬性順序是不可以預測的。具體來說,所有的屬性都會被返回一次,但返回的次序因瀏覽器而異。如果要迭代的對象是null和undefined,會不執行循環體。
label語句
用label語句可以在代碼中添加標籤。

start:for(var i=0;i<10;i++)
{alert(i);}

break語句和continue語句
break語句會立即退出循環,強制繼續執行循環後面的語句。而continue語句雖然也是立即退出循環,但退出循環後會從循環開始的頂部繼續執行。

var num =0;

outmost:
for (var i=0;i<10;i++){
    for(var j=0;j<10;j++){
        if(i==5 && j==5)
        {break outmost;}
        num++;
    }
}

alert(num);//55

每個循環正常執行10次,num++語句執行100次,當i=5,j=5時,跳出整個循環,執行循環體之後的語句,共運行55次。

var num =0;

outmost:
for (var i=0;i<10;i++){
    for(var j=0;j<10;j++){
        if(i==5 && j==5)
        {continue outmost;}
        num++;
    }
}

alert(num);//95

運行到i=5,j=5時,跳出outmost函數,從函數頂部開始運行,跳過了5次循環,共運行95次。
switch語句

switch(i){
    case 1:
        alert("1");
        break;
    case 2:
        alert("2");
        break;
    case 3:
        alert("3");
        break;
    default:
        alert("0");
        break;
}

輸入1,輸出1;輸入2,輸出2;輸入0,輸出0;

switch(i){
    case 1:
        alert("1");
    case 2:
        alert("2");
    case 3:
        alert("3");
    default:
        alert("0");
}

輸入1,輸出123;輸入2,輸出23。

switch(i){
    case 1:
    case 2:
        alert("2");
        break;
    case 3:
        alert("3");
        break;
    default:
        alert("0");
        break;
}

輸入1,2都輸出2。
try-catch語句

try{
    try{
        throw new Error("opps");
    }
    finally{
        console.log("finally");
    }
}
catch(ex){
    console.error("outer",ex.message);
}//運行結果"finally"    "outer""opps"

內層try拋出error後,尋找最近的catch語句,就要跳出本層try,跳出之前,先要運行finally,所以先輸出finally,再輸出”outer”“opps”。

try{
    try{
        throw new Error("opps");
    }
    catch(ex){
        console.error("inner",ex.message);
    finally{
        console.log("finally");
    }
}
catch(ex){
    console.error("outer",ex.message);}
    //運行結果"inner""opps"       "finally"

try拋出異常,catch輸出”inner”“opps”,之後運行finally,輸出finally。

try{
    try{
        throw new Error("opps");
    }
    catch(ex){
        console.error("inner",ex.message);
        throw ex;
    finally{
        console.log("finally");
    }
}
catch(ex){
    console.error("outer",ex.message);}
    //運行結果"inner""opps"     "finally"    "outer""opps"

try拋出異常,catch輸出”inner”“opps” ,catch又拋出異常,最近一次catch是外層循環,匹配catch需要跳出本次循環,跳出之前先執行finally,輸出”finally”,之後輸出catch語句”outer”“opps”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章