js流程控制與函數

流程控制

1.條件語句 分支結構

單向分支
if (條件表達式){ code... } 
雙向分支
if (條件表達式){ code... }else{ code... } 
多向分支
if (條件表達式){ code... }else if(條件表達式){ code... }else{ code... } 
switch (條件表達式){ case 條件表達式可能的結果:code... break; case 條件表達式可能的結果:code... break; case 條件表達式可能的結果:code... break; default code... } 
嵌套分支
if (條件表達式){ if (條件表達式){ code... } }else { if (條件表達式){ code... } } 

2.循環語句

while循環
while (){ //循環體 } 
do...while循環
do{ //循環體 } while(循環條件) 
for循環
for (變量定義;循環條件;變量變化){ //循環體 } 

3.其餘語句

跳轉語句
continue; 跳出當前循環 繼續下一次 break; 結束循環 return: 結束函數 
異常
try{ code... }catch(err){ }finally{ } 

catch至關於python中的exceptpython

嚴格模式
//寫在全部代碼的最前面 //開啓嚴格模式方法 'use strict' 
  • 嚴格模式下 聲明不加var會報錯
  • eval() 在嚴格模式不能用

4.注意

  • 當分支語句和循環語句的結構體{}內只有一行代碼的時候,能夠省略{}

函數

1.定義函數

//function 關鍵字方式 function 函數名(參數1,參數2){ code... } //表達式方式 var 函數名 = function(參數1,參數2){ code... } 

2.函數特色

  • 函數名就是變量名
  • 函數調用必須加()
  • 關鍵字方式定義的函數,會存在函數提高(能夠在函數定義前調用,而表達式方式只能在定義後調用)

3.函數的參數問題

形參和實參
  • 實參數量>形參數量 多給的實參會被忽略
  • 實參數量<形參數量 多出的形參,會使用默認值undefined
參數的默認值
//ES6 新增的語法 function demo(a,b=默認值){ code... } //有默認值的參數必定在後面 
可變數量的參數
arguments對象 能夠獲取全部的實參 只能在函數中使用 arguments是類數組對象,用法同數組,能夠使用for遍歷循環 例: function sum(){ for (var i=0;i<arguments.length;i++){ s += arguments[i] } return s; } 

4.return

  • return 能夠結束函數
  • return返回值
  • js return 只能返回一個值

2.5 回調函數(高階函數)

  • 函數的參數 仍是 函數
list.sort()按字符串排序 list.sort(function(v1,v2){ return v1-v2 }) return值大於0時,v1與v2換位置 return值小於0時,v1與v2不換位置 

2.6 自調函數

(function(){ })(); (function 函數名(){ })() //若是多個自調函數連續寫, 中間必須加 ; 不然報錯 //產生局部做用域 //有效避免全局變量污染 

2.7 遞歸

與python相同數組

相關文章
相關標籤/搜索