JavaScript的流程控制語句以及函式

TX發表於2020-05-26

一、流程控制

1. 作用:控制程式碼的執行順序

2. 分類

2.1順序結構:從上到下依次執行程式碼語句

2.2選擇結構:

1. if語句

簡單if結構

if(條件表示式){
    表示式成立時執行的程式碼段
}

注意 : 除零值以外,其他值都為真,以下條件為假值false

if(0){}
if(0.0){}
if(""){} //空字串
if(undefined){}
if(NaN){}
if(null){}

特殊寫法 : { }可以省略,一旦省略,if語句只控制其後的第一行程式碼

2. if - else結構:

if(條件表示式){
//條件成立時執行
}else{
//條件不成立時選擇執行
}

3.多重分支結構:

if(條件1){
      //條件1成立時執行
  }else if(條件2){
      //條件2成立時執行
  }else if(條件3){
      //條件3成立時執行
  }...else{
      //條件不成立時執行
  }

2. switch語句:

語法 :

switch(value){
case 值1 :
//value與值1匹配全等時,執行的程式碼段
break; //結束匹配
case 值2 :
//value與值2匹配全等時,執行的程式碼段
break;
case 值3 :
    //value與值3匹配全等時,執行的程式碼段
break;
default:
//所有case匹配失敗後預設執行的語句
break;
}

使用時要注意的:

1. switch語句用於值的匹配,case用於列出所有可能的值;只有switch()表示式的值與case的值匹配全等時,才會執行case對應的程式碼段
2. break用於結束匹配,不再向後執行;可以省略,break一旦省略,會從當前匹配到的case開始,向後執行所有的程式碼語句,直至結束或碰到break跳出
3. default用來表示所有case都匹配失敗的情況,一般寫在末尾,做預設操作
4. 多個case共用程式碼段
          case 值1:
          case 值2:
          case 值3:
          //以上任意一個值匹配全等都會執行的程式碼段

3.迴圈結構:

作用 根據條件,重複執行某段程式碼

1. while迴圈:

定義迴圈變數;
  while(迴圈條件){
  條件滿足時執行的程式碼段
  更新迴圈變數;
}

2. do-while迴圈:

do{
迴圈體;
更新迴圈變數
}while(迴圈條件);

while 與do-while迴圈的區別 :

while 迴圈先判斷迴圈條件,條件成立才執行迴圈體

do-while 迴圈不管條件是否成立,先執行一次迴圈體

3. for 迴圈

for(定義迴圈變數;迴圈條件;更新迴圈變數){
    迴圈體;
}

迴圈控制 :

break 強制結束迴圈

continue 結束當次迴圈,開始下一次迴圈 迴圈巢狀 : 在迴圈中巢狀新增其他迴圈

 

二、函式

函式的作用:封裝一段待執行的程式碼

語法:

 //函式宣告
  function 函式名(引數列表){
      函式體
      return 返回值;
  }
  //函式呼叫
  函式名(引數列表);

使用: 函式名自定義,見名知意,命名規範參照變數的命名規範。普通函式以小寫字母開頭,用於區分建構函式(建構函式使用大寫字母開頭,定義類)

三,匿名函式

匿名函式:省略函式名的函式。

語法為:

匿名函式自執行

(function (形參){
 
})(實參);

定義變數接收匿名函式:

var fn = function (){};
fn(); //函式呼叫

四,作用域

JavaScript 中作用域分為全域性作用域和函式作用域,以函式的{ }作為劃分作用域的依據

1,全域性變數和全域性函式

只要在函式外部使用 var 關鍵字定義的變數,或函式都是全域性變數和全域性函式,在任何地方都可以訪問

所有省略 var 關鍵字定義的變數,一律是全域性變數

2,區域性變數/區域性函式

在函式內部使用 var 關鍵字定義的變數為區域性變數,函式內部定義的函式也為區域性函式,只能在當前作用域中使用,外界無法訪問

3,作用域鏈 區域性作用域中訪問變數或函式,首先從當前作用域中查詢,當前作用域中沒有的話,向上級作用域中查詢,直至全域性作用域

相關文章