ES6 箭頭函式(arrow function)

2021-09-07 19:32:47 字數 1738 閱讀 7482

1: 什麼是箭頭函式?

箭頭函式,顧名思義就是用箭頭(=>來定義的函式,不會用到關鍵字『function』),例如:

let sum = (a, b)=> 

效果等同於:

var sum = function(a, b)

但是,事實上上面兩個function存在很多不同,會在之後的第三點講解。

2: 箭頭函式的多種定義方式

箭頭函式的定義形式有很多種(這也是我不喜歡的一點,呵呵),具體的有:

1: 什麼情況下都可以型

let sum = (a, b)=>

這種是最常用,最通用的形式。

2: 只有乙個引數型

let self = num1 =>  可以看到相對第一種定義的區別是:沒有用()包圍引數. 這種形式只可以在這種情況下用。 

3: 沒有引數型

let functiona = ()=> 

當沒有引數時,必須要有'()'。

4: 兩個引數及其以上型

let sum = (a, b) => 

當有兩個及其以上的引數時,也必須要用『()』把引數括起來。

5:沒有return&&沒有{}

let sum = (a, b) => a + b;

你可以同時不給return關鍵字和{},效果`等同`於上面的第4種情況

6: 沒有return && 有{}

let sum = (a, b)=> 

這種情況不等於第5種,這種情況下`'a+b'`並不會作為這個函式的返回值,如果你呼叫這個函式,得到的結果`『undefined』`

7: 有return && 沒有{}

let sum = (a, b)=> return a + b;

不要作死,這種寫法直接給你乙個syntaxerror.

註明,以上的第5,6,7點針對的是函式方法體的部分,不論函式引數是幾個,結果沒有區別;同樣的,第2,3,4點針對的是函式的引數部分,不論函式的方法體怎麼寫,對結果沒有影響。

3: 箭頭函式和一般的非箭頭函式的區別:

1: 沒有this, super, arguments和new.target繫結。乙個箭頭函式裡面的這幾個指由包含它的最近的非箭頭函式決定 2: 不能使用new來呼叫。因為箭頭函式沒有構造方法。 3: 沒有[prototype]屬性。因為不能new乙個箭頭函式,所以prototype也沒必要有了。 4: 不能改變this的值。this的值在這個箭頭函式的整個生命週期裡面都不變。 5: 沒有arguments。你必須通過命名引數和剩餘引數去獲取箭頭函式的引數。 6: 不能有重名引數。非箭頭函式在非嚴格模式下面可以有重名引數。

es6箭頭函式

本例是在了解es6知識後在原來定義函式的基礎上進行理解var searchvalue 查詢匹配物件 var button var input var select button if searchvalue.input undefined button.click else 重新整理 tableli...

es6 箭頭函式

1.單引數 function cheng a 3 let cheng a 3 a a console.log cheng 9 2.多引數 function add a,b let add a,b a b 預設返回值 console.log add 3,9 3.無返回值 function add a,...

ES6 箭頭函式

es6 中,箭頭函式就是函式的一種簡寫形式,使用括號包裹數,跟隨乙個 緊接著是函式體 var getprice function 箭頭函式 var getprice 9.15 箭頭函式不僅僅是讓 變得簡潔,函式中 this 總是繫結總shi 指向物件自身 function person 1000 使...