JS(六)函數、初始作用域(上)

寫在最前面

函數

  • 定義
    • 函數聲明
    • 函數表達式
  • 組成形式
    • 函數名稱
    • 參數
      • 形參
      • 實參
    • 返回值
//函數聲明
//第一種
function box(參數){
    //內容
};

//第二種叫命名函數表達式
var box = function test(參數){
    //內容
}

box.name-->test

//第二種寫法function後面就成了表達式,有沒有名字無所謂,所以延伸出了第三種寫法

//第三種叫匿名函數表達式-->函數表達式
var box = function (參數){
    //內容
}
box.name -->box


//函數執行
box();

參數

//形式參數-->形參
function test(a,b){
    var c= a+b
    console.log(c);//等於3
}
//實際參數--實參
test(1,2);

//不定參數 例子一
function test(a){
    //a 就等於1
    //2,3不用管
    隱式的方法arguments[1,2,3]實參列表
    找到多餘的實際參數
}

test(1,2,3);

//不定參數 例子二
function test(a,b,c,d){
    //a 等於1
    //b 等於2
    //c 等於3
    //d 等於undefined
    找到形參的長度sum.length
}

test(1,2,3);

//不定參的好處
var result
function sum(){
    for(var i = 0; i<arguments.length){
        resuit += arguments[i];
        i++;
    }

    console.log(result);

}
sum(1,2,3,4,5,6,7,8,9)
function sum(a,b){
    a = 2;
    console.log(arguments[0]);//打印出2,參數a改變了
}
sum(1,2);

function sum(a,b){
    a = 2;
    arguments[0] = 3
    console.log(arguments[0]);//打印出3,參數a改變了,可以相互改變
}
sum(1,2);
//JS的映射規則

function sum(a,b){
    b = 2;
    arguments[1];
    console.log(arguments[0]);
}
sum(1);
//JS的映射規則

> 打印出undefined,實參列表傳進來的時候他就有幾個,就算我讓b等於2,它也不會往arguments裏面加了,因爲他根本就沒有,這個時候b就當一個變量用了,他跟實參不映射,因爲形參比實參多了一位b,只有他們相等的時候他們纔會有映射的規則,不相等的時候, 形參多了他不對應實參了,他們之間不映射。

結束條件加返回值return

  • 結束函數,如果沒有寫,系統默認自帶return
  • 把值返回到函數外部
function sum(){
    return 123
}

var box = sum();-->返回123

未完待續……

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