它的寫(xiě)法:
() => {}; // 可以用來(lái)寫(xiě)一個(gè)匿名函數(shù)
它的結(jié)構(gòu):
const / let 函數(shù)名 參數(shù) => 函數(shù)體
比如現(xiàn)在有一個(gè)一般形式的函數(shù)表達(dá)式
let add = function(x, y) {return x y;};
可以用箭頭函數(shù)來(lái)寫(xiě):
let add = (x, y) => {return x y;};
2. 箭頭函數(shù)的化簡(jiǎn)寫(xiě)法單個(gè)參數(shù)// 對(duì)于單個(gè)參數(shù),我們可以省略外面的圓括號(hào)let addOne = x => {return x 1;}單行函數(shù)體// 對(duì)于單行返回函數(shù)體,可以同時(shí)省略 {} 和 returnlet add (x, y) => x y;單行對(duì)象// 對(duì)于返回單行對(duì)象,在外面加個(gè) ()let add (x, y) => ({value: x y;});
3.?箭頭函數(shù)的基礎(chǔ)知識(shí)
箭頭函數(shù)沒(méi)有 this,它會(huì)根據(jù)作用域鏈在外層中尋找 this。 舉個(gè)例子:
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
調(diào)用printA,里面是輸出this.A,由于箭頭函數(shù)沒(méi)有this,所以在外層尋找,外層是fun。在這里,fun.printA()是在全局作用域中調(diào)用的,所以外層的this指向的是window,由于之前用var定義了一個(gè) A = 1,所以輸出的是 1。
調(diào)用printAA,在里面調(diào)用了print(),輸出this.A,看print這個(gè)函數(shù),是個(gè)箭頭函數(shù),他沒(méi)有this,所以找外層,它的外層是printAA,它是由fun調(diào)用的,所以它的this指向fun,所以輸出fun中定義的 A,也就是 2。
4. 箭頭函數(shù)不適用的場(chǎng)景作為構(gòu)造函數(shù)
實(shí)例化構(gòu)造函數(shù)之后,它的 this 指向?qū)嵗膶?duì)像,而箭頭函數(shù)沒(méi)有 this,所以它不能用來(lái)做構(gòu)造函數(shù)。
需要 this 指向調(diào)用對(duì)象的時(shí)候
需要使用 arguments 的時(shí)候
箭頭函數(shù)中沒(méi)有 arguments,可以使用剩余參數(shù)來(lái)存參數(shù)。
5.?剩余參數(shù)5.1) 什么是剩余參數(shù) ?
舉個(gè)例子:
let add = (x, y, z, …args) => {console.log(x, y, z, args);};
args就是剩余參數(shù)。 剩余參數(shù)是個(gè)數(shù)組,它即使沒(méi)有值,也是以一個(gè)空數(shù)組形式存在。 比如:
let add = (x, y, z, …args) => { console.log(x, y, z, args);}add(1, 2, 3);
x, y, z 對(duì)應(yīng)參數(shù) 1, 2, 3,由于剩余參數(shù)沒(méi)有值,所以空數(shù)組形式存在。
5.2) 作用
由于箭頭函數(shù)沒(méi)有arguments,所以我們可以使用剩余參數(shù)替代arguments獲取實(shí)際參數(shù) 舉個(gè)例子:
const print = (…args) => { console.log(args);};print(1, 2);
5.3) 注意事項(xiàng)在箭頭函數(shù)中,即使只有一個(gè)剩余參數(shù),也不能省略圓括號(hào)let add = (…args) => {};剩余參數(shù)只能是最后一個(gè)參數(shù),之后不能再有其他參數(shù),否則會(huì)報(bào)錯(cuò)
【相關(guān)推薦:javascript學(xué)習(xí)教程】
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問(wèn)題,請(qǐng)?jiān)L問(wèn)西部數(shù)碼官網(wǎng):m.ps-sw.cn