ES6 函式的擴充套件

2022-04-29 03:18:09 字數 1574 閱讀 6359

1.es6 允許為函式的引數設定預設值,即直接寫在引數定義的後面。

function log(x, y = 'world') 

log('hello') //

hello world

log('hello', 'china') //

hello china

log('hello', '') //

hello

2.rest 引數

es6 引入 rest 引數(形式為...變數名),用於獲取函式的多餘引數,這樣就不需要使用arguments物件了。rest 引數搭配的變數是乙個陣列,該變數將多餘的引數放入陣列中。

function

add(...values)

return

sum;

}add(2, 5, 3) //

10

注意,rest 引數之後不能再有其他引數(即只能是最後乙個引數),否則會報錯。

3.name 屬性

函式的name屬性,返回該函式的函式名。

function

foo() {}

foo.name

//"foo"

4.箭頭函式

es6 允許使用「箭頭」(=>)定義函式。

var f = v =>v;

//等同於

var f = function

(v) ;

如果箭頭函式不需要引數或需要多個引數,就使用乙個圓括號代表引數部分。

var f = () => 5;

//等同於

var f = function () ;

var sum = (num1, num2) => num1 +num2;

//等同於

var sum = function

(num1, num2) ;

如果箭頭函式的**塊部分多於一條語句,就要使用大括號將它們括起來,並且使用return語句返回。

var sum = (num1, num2) =>

由於大括號被解釋為**塊,所以如果箭頭函式直接返回乙個物件,必須在物件外面加上括號,否則會報錯。

//

報錯let gettempitem = id => ;

//不報錯

let gettempitem = id => ();

箭頭函式有幾個使用注意點。

(1)函式體內的this物件,就是定義時所在的物件,而不是使用時所在的物件。

(2)不可以當作建構函式,也就是說,不可以使用new命令,否則會丟擲乙個錯誤。

(3)不可以使用arguments物件,該物件在函式體內不存在。如果要用,可以用 rest 引數代替。

(4)不可以使用yield命令,因此箭頭函式不能用作 generator 函式。

詳細

ES6 函式擴充套件

函式在js裡是相當重要的一部分了,es6裡也新增了一些函式方法,來看一下 test hello hello world test hello kill hello kill es6增加了函式引數預設值,可以直接在宣告引數的同時賦預設值,但是也可以後面重新賦值 test2 kill 括號內有引數x時,...

ES6函式擴充套件

函式引數的預設值 在es5中,我們想給函式乙個預設值,需要這樣寫 function add x,y 在es6中 可以這樣寫 function add x,y ss add dd ddss add ss dd ssdd add dd dd我們只需要在引數上直接寫上我們想要的預設值就好了。當我們給函式乙...

ES6函式擴充套件

function fun a,b world fun hello 輸出helloworld let a aa function fun a,b a fun bb function fun arg fun 1,2,3,4,1 語法 param param 對應函式 function 沒有引數 乙個引數...