Function

function

什麼是函數:
函數:封裝一項專門任務的步驟清單的代碼段,起一個名字。(**程序中提供的一項服務的步驟說明**)
 什麼時候使用函數?當一項任務須要反覆執行,但又不但願重複編寫時。(**代碼重用!**)
 如何聲明函數:function 任務名([參數變量列表]){
            步驟清單代碼段
                        [return 返回值]
                  }
***函數名(任務名): 指向函數定義的一個變量
                      函數:封裝函數定義的引用類型對象
            ***聲明時,不執行!也不讀取內部的代碼!
        如何調用函數執行:任何位置: 函數名([參數值列表]);
            ***調用時,纔讀取內部的代碼,執行
            
 參數變量:專門接收要傳入方法中處理的數據的變量。
  什麼時候須要定義參數:若是一個函數,必須一些數據纔可正常執行,須要幾個數據,就定義幾個參數變量。
  什麼時候如何爲參數變量賦值:在調用函數時,按照參數定義時的順序和個數,依次傳入參數值。
  
    返回值:函數的執行結果
            什麼時候須要返回值:只要函數須要有明確的執行結果時
                         若是調用者須要得到明確的執行結果時
            如何定義返回值: 函數定義內部,通常函數體結尾
                            return 值;
            調用者什麼時候如何得到返回值:
                    1. 一個有返回值的函數調用,能夠當作一個值使用
                    2. 調用時,可以使用變量保存住函數調用的返回值
function buy(what,moeny){
    console.log("Step1:取盒飯");
    console.log("Step2:去食堂");
    console.log("Step3:打飯"+what);
    moeny-=3;
    console.log("Step4:扣款3元,餘額:"+moeny);
    console.log("Step5:回宿舍");
    return "香噴噴的"+what;
   }
   console.log(buy("宮保雞丁",10));
***變量做用域:一個變量的可用範圍
    有2種:1. 全局做用域:window
          全局變量——放在全局做用域(window)中的變量
          可在程序的任何位置訪問全局變量
         2. 局部做用域:在函數調用時才建立的做用域
              局部變量:2種:1. 參數變量
                          2. 在函數定義中var的變量
              ***僅在函數調用時,動態建立
                 調用時,若是局部有,就不用全局的!
              ***調用後,隨局部做用域一同銷燬
var kl=10;
   function rose(){
    var kl=5;
    kl--;
    console.log(kl);
   }
   function jack() {
    kl--;
    console.log(kl);
   }
   console.log(kl);//全局kl=10
   rose();//4
   console.log(kl);//全局kl=10
   jack();//9
   console.log(kl);//全局kl=9

聲明提早

聲明提早:正式開始執行程序前,先將var聲明的變量和function聲明的函數,提早到*當前做用域*頂部,集中聲明,賦值留在原地。
var n=100;
            function fun(){
                var n;//undifend
                console.log(n);
                n=99;
                console.log(n);
            }
            fun();//99
            console.log(n);

按值傳遞:兩變量間賦值,或將變量做爲函數的參數傳遞時都僅將變量中的值,複製一個副本給對方!瀏覽器

var n=100;
            var m=n;
            n++;
            console.log(m);//100

全局函數:ES標準中規定的,由瀏覽器廠商實現的,不須要任何對象前綴就可直接訪問的函數.函數

好比:parseInt/Float(str),isNaN(n)

 好比:alert() prompt()——BOM

分支結構

分支結構:code

程序結構:3種:
 順序結構:默認程序都是自上向下逐行順序執行
 分支結構:根據不一樣的條件,選擇執行不一樣的操做
         操做的複雜程度
 循環結構:讓程序反覆執行同一代碼段。

分支結構:3種狀況:
1. 一個條件,一件事:知足條件就執行,(不知足就什麼都不作)
短路邏輯:條件&&(操做1,操做2...)
    什麼時候使用:操做很是簡單時
  if結構:若是 知足*條件*, 就執行代碼段
          if(條件){
     知足條件時,才能執行的代碼段
          }
var price=parseFloat(prompt("請輸入單價"));
            var count=parseFloat(prompt("輸入數量"));
            var money=parseFloat(prompt("輸入收款金額"));
            var total=price*count;
            if(total>=500){
                total*=0.8;
            }
            var change=money-total;
            console.log("應收:"+total+";找零"+change);
2. 一個條件,兩件事:二選一執行!
         若是 知足*條件*,就執行操做1,不然,執行操做2
      三目運算:條件?操做1:操做2;
        什麼時候使用:操做1和操做2,都很是簡單時
         if...else結構:
         if(條件){
        知足條件才執行的代碼段
         }else{//不然
        不知足條件才執行的代碼段
         }
var price=parseFloat(prompt("請輸入單價"));
            var count=parseFloat(prompt("輸入數量"));
            var money=parseFloat(prompt("輸入收款金額"));
            var total=price*count;
            if(money>=total){
                var change=money-total;
              console.log("應收:"+total+";找零"+change);
            }else{
                var change=total-moeny;
              console.log("應收:"+total+";還差"+change);
            }
  1. 多個條件,多件事,多選一執行!(有可能都不執行)對象

    若是 知足 條件1 就執行 操做1

    不然,若是知足 條件2 就執行 操做2
    ... ...作用域

    [不然,默認操做]

    三目:條件1?操做1:it

    條件2?操做2:
                 ...:
             默認操做——不可省略

    if...else if結構:io

    if(條件1){
     知足條件1才執行的操做1;
         }else if(條件2){
     知足條件2才執行的操做2;
         }else if(...){
     ...
         }[else{
      若是以上任何條件都不知足,則執行默認操做
         }]
if (score<0||score>100) {
      console.log("無效分數");
     } else if(score>=90){
      console.log("A");
     } else if (score>=80) {
      console.log("B");
     } else if (score>=70) {
      console.log("C");
     }  else {
      console.log("D");
     }

switch...case結構:
什麼時候使用:當條件都是全等比較時,纔可用switch結構
switch(表達式){ //1. 計算表達式的結果console

//用表達式的值和每一個case後的值作**全等**比較
//碰到一個全等的case值,則進入該case開始執行

//並默認以此觸發以後全部case的執行
case 值1:function

知足值1才執行的代碼段1;
case 值2:
     知足值2才執行的代碼段2;
     ...:
     ... ...
 default:
 若是前邊的值都不知足,執行默認代碼段

}變量

switch(parseInt(prompt("請按鍵:"))){
      case 1:
      console.log("查詢進行中.....");
      case 2:
      console.log("取款中......");
      case 3:
      console.log("轉帳進行中....");
      case 0:
      console.log("歡迎下次再來!");
      default:
      console.lop("無效按鍵");
     }

break: 停止當前結構的執行,並跳出結構。

位置:在每一個case之間

什麼時候能夠省略部分break:上下兩個case但願執行相同代碼時

switch(parseInt(prompt("請按鍵:"))){
      case 1:
      console.log("查詢進行中.....");
      break;
      case 2:
      case 3:
      console.log("系統維護中....");
      break;
      case 0:
      console.log("歡迎下次再來!");
      break;
      default:
      console.log("無效按鍵");
     }
相關文章
相關標籤/搜索