1. 程式人生 > >Web前端複習——Javascript複習(函式+分支結構)

Web前端複習——Javascript複習(函式+分支結構)

1、函式

   指的是為一個任務進行封裝在一個程式碼塊中。

(1)函式使用:宣告、定義和呼叫

function 函式名([引數變數列表]){

函式體:包含任務的步驟清單(程式碼塊)

[return 返回值]

}

如何呼叫:[var 返回值] = 函式名([引數值列表]);

函式只有呼叫時才執行(反覆呼叫,反覆執行)

2、變數作用域:一個變數的可用範圍

(1)JS中有兩種作用域——

a、全域性作用域:一個變數可以在程式的任何位置被訪問

b、函式作用域:一個變數僅在函式呼叫時,內部被訪問

(2)JS中有兩種變數——

a、全域性變數:定義在全域性作用域中的變數 又分為2種:

1.直接在任何函式外宣告的變數

全域性變數都屬於window——全域性物件

 2.無論在任何位置,為從未宣告過的變數賦值時,會自動在全域性建立同名全域性變數

b、區域性變數:定義在函式作用域中的變數,又分為2種:

1.在函式定義內部宣告的變數

        2.引數變數天生就是區域性變數

總結:(1)函式其實是引用型別的物件,

      (2)函式名是指向函式物件的變數。

3、函式

(1)宣告提前:在程式執行前或函式被呼叫前

原理:將var宣告的變數和function宣告的函式,提前到當前作用域的頂部集中建立。

強調——僅宣告提前,賦值留在原地

(2)按值傳參

原理:js中無論變數間賦值或使用變數傳遞引數時,都是將變數中的值,賦值一個副本給對方

   程式結構分為3大類

a、順序:程式預設從上到下逐行換行

b、分支:根據條件判斷的結果,有選擇的執行不同程式碼段

c、迴圈:程式可以反覆執行同一程式碼段,到臨界時退出

4、分支結構

需求分析——IPO(Input Process Output)

以一個案例作為分析——

·編寫一個收銀櫃臺收款程式,
·根據商品單價、購買數量以及收款金額計算並輸出應收金額和找零


分析:
·定義輸入——單價、數量、金額
·定義輸出——應收金額、找零
·設計資料結構——多組表示單價和購買數量的變數

Input:price、count、money

Output:total、change

Process:total = price * count

                 change = money - total

分支結構 VS 三目/短路

如果只是返回值——三目/短路

如果操作複雜——分支結構

(1)if-else

(2)switch-case結構:根據不同的條件執行不同的程式碼段

原理——用switch中的表示式的值和case中的值做“全等”比較

知識點1:break

它是停止當前結構的執行,並跳出當前結構

知識點2:switch VS else if

若“條件是全等比較”時,首選“switch-case”

若需要靈活定義條件時,需要使用“else if”

5、迴圈結構(3種)

讓程式反覆執行一段程式碼段,達到臨界條件,停止。

3要素——迴圈條件、迴圈變數、迴圈體

(1)while

語法:

var 迴圈變數 = 初值;

while(迴圈條件){
   迴圈體;
   迭代變化迴圈變數;
}
退出迴圈:2種方式

a、自然退出:不滿足迴圈條件時,自動退出迴圈

b、手動退出:程式設計師在迴圈體使用break強行退出迴圈

(2)do-while迴圈

語法:

var 迴圈變數 = 初值;

do{
    迴圈體;
    迭代變化迴圈變數;
}while(迴圈變數);

總結:while和do-while區別

當第一次條件滿足時,while、do-while完全相同;

當第一次條件不滿足時。

do-while:至少會執行一次

while:一次都不執行

注意——當條件第一次都不滿足時,do-while也會執行一次。

js中沒有塊級作用域,分支/迴圈結構出了結構照樣使用。

(3)for迴圈

語法:

var 迴圈變數 = 初值;

for(迴圈變數;迴圈體判斷;迭代變化迴圈變數;)
){
    迴圈體;
    
}