重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
本篇文章給大家帶來了JavaScript中關于箭頭函數和剩余參數的相關知識,箭頭函數與剩余參數都非常簡潔,下面我們就一起來看一下怎樣去使用,希望對大家有幫助。
箭頭函數表達式語法比函數表達式更簡潔,即函數的一種簡化形式。
它的寫法:
它的結構:
const / let 函數名 參數 => 函數體比如現在有一個一般形式的函數表達式
let add = function(x, y) {return x + y;};可以用箭頭函數來寫:
let add = (x, y) => {return x + y;};箭頭函數沒有 this,它會根據作用域鏈在外層中尋找 this。 舉個例子:
var A = 1;let fun = { A: 2, printA: () => { console.log(this.A); }, printAA: function() { let print = () => { console.log(this.A); } print(); }};fun.printA(); // 1fun.printAA(); // 2調用printA,里面是輸出this.A,由于箭頭函數沒有this,所以在外層尋找,外層是fun。在這里,fun.printA()是在全局作用域中調用的,所以外層的this指向的是window,由于之前用var定義了一個 A = 1,所以輸出的是 1。
調用printAA,在里面調用了print(),輸出this.A,看print這個函數,是個箭頭函數,他沒有this,所以找外層,它的外層是printAA,它是由fun調用的,所以它的this指向fun,所以輸出fun中定義的 A,也就是 2。
實例化構造函數之后,它的 this 指向實例化的對像,而箭頭函數沒有 this,所以它不能用來做構造函數。
需要 this 指向調用對象的時候
需要使用 arguments 的時候
箭頭函數中沒有 arguments,可以使用剩余參數來存參數。
舉個例子:
let add = (x, y, z, ...args) => {console.log(x, y, z, args);};args就是剩余參數。 剩余參數是個數組,它即使沒有值,也是以一個空數組形式存在。 比如:
let add = (x, y, z, ...args) => { console.log(x, y, z, args);}add(1, 2, 3);x, y, z 對應參數 1, 2, 3,由于剩余參數沒有值,所以空數組形式存在。
5.2) 作用由于箭頭函數沒有arguments,所以我們可以使用剩余參數替代arguments獲取實際參數 舉個例子:
const print = (...args) => { console.log(args);};print(1, 2);5.3) 注意事項在箭頭函數中,即使只有一個剩余參數,也不能省略圓括號let add = (...args) => {};剩余參數只能是最后一個參數,之后不能再有其他參數,否則會報錯【相關推薦:javascript學習教程】