ES6 07箭頭擴充套件和尾呼叫

2022-09-10 07:57:09 字數 1208 閱讀 1139

要點:1.箭頭擴充套件 2.尾呼叫

一.箭頭擴充套件

1.箭頭也支援一些內建函式的使用,例sort()排序

let arr=[3,1,2].sort((a,b)=>(a-b));

console.log(arr); //

翻譯後**

let arr=[3,1,2].sort(function

(a,b))

2.箭頭函式不支援arguments繫結,直接可使用...other模式(rest運算子)

//

下面寫法不支援

let fn=(x,y)=> //

不確定引數,使用...

let fn=(...other)=>

console.log(fn(10,20));

3.箭頭函式和普通函式一樣,都可以被typeof和instanceof

console.log(typeof

fn);

console.log(fn

instanceof function);

二.尾呼叫優化

1.什麼是尾呼叫,乙個函式的最後可執行的一步呼叫了其他函式

function

go(x)

let fn=function

(x) console.log(fn(10));

2.那什麼是尾呼叫優化?為何要優化?因為:每次尾呼叫都會建立棧幀

3.尾呼叫次數過多,記憶體中呼叫的棧越來越大,可能會出現程式問題

4.特別在遞迴函式問題上,尾呼叫優化適合在這種場景中使用

5.尾呼叫優化必須在es6的嚴格模式下,'use strict'

6.嚴格模式,可以設定為全域性作用域,也可在函式體內有效

7.嚴格模式對變數、物件和函式做了一些**規範等等

8.面對尾呼叫,必須嚴格按照三個規則,才能執行嚴格模式下的優化

①尾呼叫必須return返回  go(x)錯誤

②尾呼叫return返回的不是函式,而是函式賦值的變數,不在尾部

let result=go(x);

return

result;

'use strict' //

嚴格模式

function

fn(x)

return fn(x-1);

}fn(10);

ES學習筆記 9 ES6中的箭頭函式和擴充套件

es5中就經常使用嚴謹模式來進行程式設計,但是必須寫在 最上邊,相當於全域性使用。在es6中我們可以寫在函式體中,相當於針對函式來使用。function add a,b return a b console.log add 1,2 3 function add a,b return a b cons...

ES 入門(五)函式的擴充套件(箭頭函式)

es6 之前,不能直接為函式的引數指定預設值,只能採用變通的方法 es6 允許為函式的引數設定預設值,即直接寫在引數定義的後面。function log x,y world log hello hello world log hello china hello china log hello hel...

ES6 06箭頭函式和this

要點 1.箭頭函式 2.this繫結 一.箭頭函式 1.es6新增乙個使用 箭頭符號定義函式的語法特徵 let fn name name console.log fn mr.lee 翻譯成函式 為 let fn function name 2.箭頭函式也可以傳遞兩個或以上的引數,並實現運算後返回 l...