(1)直接為函數(shù)的參數(shù)指定默認(rèn)值
現(xiàn)在我們可以直接為函數(shù)的參數(shù)指定默認(rèn)值,我們可以在()中直接賦值,
我是在vue的項目中用的es6的寫法,當(dāng)我們調(diào)用該方法的時候如果直接打印會發(fā)現(xiàn)x的值是undefined .
如果我們在this.log("2","3")里邊傳遞參數(shù)那么我們打印的值也瞬間變成了2,3這樣的形式
相比于之前es5需要判斷穿過來的參數(shù)是否是undefined,我們才能賦值,對于之前的代碼我們簡化了邏輯闻鉴。
如上所述是他的基本的用法春缕,其實還有與結(jié)構(gòu)賦值默認(rèn)結(jié)合來一起定義函數(shù)的參數(shù)........()
(2)es6中新增了rest參數(shù)
主要的目的是獲取函數(shù)的多余的參數(shù)私植,這樣就不需要使用arguments對象了,rest參數(shù)搭配的變量是一個數(shù)組徘六,就是將多余的參數(shù)放入數(shù)組中内边。可以向該函數(shù)傳遞任意數(shù)目的參數(shù)待锈。
(3)es6的箭頭函數(shù)
說到了箭頭函數(shù)箭頭函數(shù),怎么寫已經(jīng)成為了關(guān)鍵竿音,首先如果箭頭函數(shù)不需要參數(shù)或者多個參數(shù)的時候需要用一個圓括號代表參數(shù)部分和屎。如果箭頭函數(shù)的代碼塊部分多于一條語句,就要使用大括號將他們擴起來春瞬,并使用return語句返回柴信,由于大括號被解析為代碼塊,所以如果箭頭函數(shù)返回一個對象宽气,必須在對象外邊加上括號随常。箭頭函數(shù)其中的一個用處是簡化回調(diào)函數(shù)潜沦。
那么箭頭函數(shù)在寫的時候有那些注意事項呢?
(1)this的指向性的問題绪氛,在弄懂es6的指向性問題之前我們要先弄懂es5的this的指向性問題唆鸡,先說一下es5的this的指向性問題,在es5的this指向性可以分為四點
1.在全局模式枣察,非嚴(yán)格模式下
在全局模式争占,嚴(yán)格模式下
這個this指向undefined
2.在作為對象的方法進行調(diào)用的時候,這個時候的this指向該對象
3.作為構(gòu)造函數(shù)的時候的this的指向性問題询件,
這個時候的this的指向就要分情況而定了燃乍,主要看構(gòu)造函數(shù)有沒有顯示的返回一個對象,當(dāng)用new運算符調(diào)用函數(shù)的時候宛琅,該函數(shù)總會返回一個對象刻蟹,那么運算結(jié)果最終返回的事那個對象而不是this,所以這個時候this指向的對象就是顯式的返回的那個對象
4.call和apply可以改變this的指向性的問題
call和apply第一個參數(shù)傳遞的都是this嘿辟,指向的是上下文舆瘪,call后邊的參數(shù)不固定但是apply后面的參數(shù)是一個數(shù)組或者類數(shù)組,數(shù)組的每一項按照順序當(dāng)成函數(shù)的參數(shù)傳遞進去
那么到這里es5的this的指向性的問題就說完了红伦,現(xiàn)在說一下es6的this的指向性的問題
1.函數(shù)體內(nèi)的this對象英古,就是定義時所在的對象,而不是使用時所在的對象昙读。
2.不可以當(dāng)做構(gòu)造函數(shù)召调,不可以使用new命令
3.不可以使用arguments對象,該對象在函數(shù)體內(nèi)存在蛮浑,如果用要用rest參數(shù)替代
4.不可以使用yield命令唠叛,因此箭頭函數(shù)不能用作 Generator 函數(shù)。