亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ES6基礎(chǔ)之默認參數(shù)值

 更新時間:2019年02月21日 10:23:10   作者:前端達人  
這篇文章主要介紹了ES6基礎(chǔ)之默認參數(shù)值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

如果調(diào)用函數(shù)的過程中,定義的參數(shù)缺失,此參數(shù)變量的值則會是undefined。怎么給缺失的參數(shù)賦值默認值,在ES6之前,沒有簡潔的語法設(shè)置缺失參數(shù)的默認值,但是我們一般可以這么編寫代碼解決缺失參數(shù)默認值:

function myFunction(x, y, z) {
 x = x === undefined ? 1 : x;
 y = y === undefined ? 2 : y;
 z = z === undefined ? 3 : z;
 console.log(x, y, z); //Output "6 7 3"
 }
 myFunction(6, 7);

這種寫法是不是比較麻煩?默認值的設(shè)置是不是不夠直觀?在ES6中,我們可以用更簡潔的語法進行實現(xiàn),通過本篇文章你將學習到以下內(nèi)容:

  • 使用ES6語法聲明參數(shù)默認
  • 值使用undefined傳
  • 參參數(shù)運算

使用ES6語法聲明參數(shù)默認值

我們可以使用ES6簡潔的語法,如下示例進行聲明函數(shù)參數(shù)的默認值:

function myFunction(x = 1, y = 2, z = 3) {
 console.log(x, y, z); 
}
myFunction(6,7); // Outputs 6 7 3

在上述代碼示例中,我們在調(diào)用此函數(shù)中傳遞了前兩個參數(shù),因此參數(shù)的默認值(即x=1和y=2)將會被覆蓋(即x=6和y=7)。由于第三個參數(shù)缺省,因此z使用默認值,將會是3。

使用undefined傳參

如果我們想讓具體某個參數(shù)使用默認值,我們可以使用undefined進行賦值,如下段代碼所示:

function myFunction(x = 1, y = 2, z = 3) {
 console.log(x, y, z); // Outputs "1 7 9"
 }
 myFunction(undefined,7,9);

是不是很簡單,只需要使用undefined,我們就可以指定具體某個參數(shù)使用默認值。

參數(shù)運算

在ES6中我們不僅可以給參數(shù)默認賦值具體的數(shù)值,同時參數(shù)賦值支持參數(shù)的邏輯運算進行賦值,如下段代碼所示:

function myFunction(x = 1, y = 2, z = x + y) {
 console.log(x, y, z); // Output "6 7 13"
 }
 myFunction(6,7);

在上述代碼中,我們只傳入了前兩個參數(shù),第三個參數(shù)缺省,第三個參數(shù)的值默認值是則會是前兩個參數(shù)之和。

小節(jié)

今天的內(nèi)容就到這里,當我們在開發(fā)一些工程應用通用組件時,都需要暴露一些接口以供使用。而這些接口的友好性是決定這個組件質(zhì)量的一大指標,其中參數(shù)缺省值(默認值)的完善程度同時也影響接口的友好性,感謝ES6能讓我們用如此簡介的語法設(shè)置參數(shù)的缺省值。

與解構(gòu)賦值默認值結(jié)合使用

這里有兩種寫法需要區(qū)分一下:

function m1({x=0,y=0} = {}){
  return [x,y];
}
function m2({x,y} = {x:0,y:0}){
  return [x,y];
}
m1({x:3});//[3,0]
m2({x:3});//[3,undefined]
m1({});//[0,0]
m2({});//[undefined,undefined]

參數(shù)默認值的位置

通常情況下,定義了默認值的參數(shù)應該是函數(shù)的尾參數(shù)。因為這樣比較容易看出,到底省略了哪些參數(shù),如果非尾部的參數(shù)設(shè)置默認值,實際上這個參數(shù)是無法省略的。

如果有默認值的參數(shù)都不是尾參數(shù),這時,無法只省略該參數(shù)而不省略其后的參數(shù),除非顯示輸入undefined。如果傳入undefined,那么就會觸發(fā)默認值,但是null沒有這個效果。

函數(shù)的length屬性

如果函數(shù)指定了默認值后,函數(shù)的length屬性就不會包含有默認值的參數(shù)。這是因為length屬性的含義是,該函數(shù)預期傳入的參數(shù)個數(shù),某個參數(shù)指定默認值之后,預期傳入的參數(shù)個數(shù)就不包括這個參數(shù)了,同理,rest參數(shù)也不會計入length屬性。

函數(shù)參數(shù)默認值的類型

(1)變量
如果函數(shù)參數(shù)的默認值是一個變量,則該變量所處的作用域和其他變量的作用域規(guī)則相同,即是先前函數(shù)的作用域,然后再是全局作用域。

(2)函數(shù)
如果函數(shù)A的參數(shù)默認值是函數(shù)B,那么由于函數(shù)的作用域是其聲明的時候所在的作用域,函數(shù)B的作用域就在全局作用域而不是函數(shù)A的作用域。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Javascript閉包實例詳解

    Javascript閉包實例詳解

    閉包就是函數(shù)的局部變量集合,只是這些局部變量在函數(shù)返回后會繼續(xù)存在,本文通過代碼實例給大家介紹javascript閉包,對javascipt閉包相關(guān)知識感興趣的朋友一起學習吧
    2015-11-11
  • 原生javascript實現(xiàn)圖片無縫滾動效果

    原生javascript實現(xiàn)圖片無縫滾動效果

    這篇文章主要介紹了原生javascript實現(xiàn)圖片無縫滾動效果的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • js特殊字符轉(zhuǎn)義介紹

    js特殊字符轉(zhuǎn)義介紹

    js特殊字符轉(zhuǎn)義。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • js中toString()和String()區(qū)別詳解

    js中toString()和String()區(qū)別詳解

    本文主要介紹了js中toSring()和Sring()的區(qū)別。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • 用JS動態(tài)設(shè)置CSS樣式常見方法小結(jié)(推薦)

    用JS動態(tài)設(shè)置CSS樣式常見方法小結(jié)(推薦)

    本文給大家總結(jié)了js動態(tài)設(shè)置css樣式的常見方法,非常實用,對js設(shè)置css樣式相關(guān)知識感興趣的朋友一起學習吧
    2016-11-11
  • JavaScript截斷字符串的方法

    JavaScript截斷字符串的方法

    這篇文章主要介紹了JavaScript截斷字符串的方法,涉及javascript字符串截取的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • svg插入foreignObject無法響應事件解決

    svg插入foreignObject無法響應事件解決

    這篇文章主要為大家介紹了svg插入foreignObject無法響應事件解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • JS中==、===你分清楚了嗎

    JS中==、===你分清楚了嗎

    這篇文章主要介紹了JS中==、===你分清楚了嗎,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • parabola.js拋物線與加入購物車效果的示例代碼

    parabola.js拋物線與加入購物車效果的示例代碼

    本篇文章主要介紹了parabola.js拋物線與加入購物車效果的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 詳解webpack require.ensure與require AMD的區(qū)別

    詳解webpack require.ensure與require AMD的區(qū)別

    本篇文章主要介紹了詳解webpack require.ensure與require AMD的區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論