1. 程式人生 > 實用技巧 >函式基礎知識總結

函式基礎知識總結

---------函式
1. 重用
2. 維護
3. 引數
4. 返回值
--------建立函式
​ 1.宣告式(可以先呼叫)

​ function foo(){};

​ 2. 表示式(不能先呼叫再建立)

​ let foo = function(){};

​ 3. 建構函式

​ let foo = new Function(){};

​ 4. 函式呼叫

​ function foo(){}

​ foo();
宣告式可以先呼叫後宣告(存在函式提升)

--------匿名函式: function(){} 沒有名字的函式,通常作為callback;

​ 5. IIFE :立即執行函式;

  (function (){

    console.log(666);

  })();

​ 6. 引數:形參(形式引數),實參(實際引數);
function foo(a,b,c){ console.log(a + b);//3 console.log(c);//undefined } foo(1,2)
7. 函式的返回值,return 讓函式呼叫完後,重新拿個變數儲存,在函式外還可以使用內部的結果,
8. 使用return之後,其後面的語句不會再執行。
9. return每次只能返回1個值。

-------函式3要素:功能,引數,返回值

--------argument 偽陣列物件儲存實參

---------預設引數

---------不定引數 || 剩餘引數 reset 引數,接收多餘的沒有形參接收的實參,是陣列,可以使用陣列的方法

​ 不定引數只能寫在形參的最後

​ "..." 符號有兩個作用,在數組裡是展開運算子,拆散陣列;在形參裡是剩餘引數
`function foo(a){
console.log(a); //1
console.log(arguments[0]);//1
console.log(arguments[1]);//undefined
console.log(arguments[2]);//undefined
}
foo(1);

function foo1(x,y = "hehe",z = "666"){//在沒有實參的情況下才使用預設引數
console.log(x,y,z);
}
foo1("a");

function foo2(x,...rest){//rest以陣列的形式儲存
console.log(x,rest);
}
foo2("a","b","c","d","123");//a [ 'b', 'c', 'd', '123' ] -------解構 保持 = 左右兩邊相同的資料型別,把複雜資料型別裡的值拆分

let arr = [1,2];
let [a,b] // a,b => 1,2
console.log(a,b);//1,2

function fn([a,b]){
console.log(a,b);//[1,2]
}
console.log([1,2]);

function fn1(){
let a = 1,b = 2;
return [a,b];
}
// let result = fn1()
// console.log(result);//[1,2]
let [x,y] = fn1();
console.log(x,y);//1,2

// if(!max){
// [min,max] = [0,min];
// }`
---------箭頭函式:
​ let foo = () => {}

  1. 如果函式體內只有一個ruturn語句, return關鍵字省略,{}省略。

  2. 如果有且一個形參,()省略

  3. 沒有自己的this。