【ES6基礎】默認參數值

若是調用函數的過程當中,定義的參數缺失,此參數變量的值則會是undefined。怎麼給缺失的參數賦值默認值,在ES6以前,沒有簡潔的語法設置缺失參數的默認值,可是咱們通常能夠這麼編寫代碼解決缺失參數默認值:javascript

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);複製代碼

這種寫法是否是比較麻煩?默認值的設置是否是不夠直觀?前端

在ES6中,咱們能夠用更簡潔的語法進行實現,經過本篇文章你將學習到如下內容:java

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

本篇文章閱讀時間大約5分鐘微信

使用ES6語法聲明參數默認值

咱們能夠使用ES6簡潔的語法,以下示例進行聲明函數參數的默認值:函數

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

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

使用undefined傳參

若是咱們想讓具體某個參數使用默認值,咱們能夠使用undefined進行賦值,以下段代碼所示:學習

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

是否是很簡單,只須要使用undefined,咱們就能夠指定具體某個參數使用默認值。ui

參數運算

在ES6中咱們不只能夠給參數默認賦值具體的數值,同時參數賦值支持參數的邏輯運算進行賦值,以下段代碼所示:spa

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

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

小節

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

E6相關文章

【ES6基礎】let和做用域

【ES6基礎】const介紹

更多精彩內容,請微信關注」前端達人」公衆號!

相關文章
相關標籤/搜索