es6默認參數

es5 要實現默認參數,通常是javascript

在大括號裏 寫, java

function calc(x, y) {
    x = x || 0;
    y = y || 0;
    // to do with x, y
    // return x/y
}

 

es6後,直接用語言自己來處理, 寫在小括號裏es6

function calc(x=0, y=0) {
    console.log(x,y)
}

默認參數能夠不是一個值類型,它能夠是一個函數調用ajax

function throwIf() {
    throw new Error('少傳了參數');
}
 
function ajax(url=throwIf(), async=true, success) {
    return url;
}
ajax(); // 沒有傳url,則使用默認參數 throwIf()   返回Error: 少傳了參數

 

=============================================================async

 

定義了默認參數,函數的length屬性會減小,即有默認參數不包含在length的計算當中函數

function calc(x=0, y=0) {

    console.log(x, y)

}

function ajax(url, async=true, dataType="JSON") {


    console.log(url, async, dataType)

}

console.log(calc.length); // 0  x,y 2個都有默認參數,不參與計算

console.log(ajax.length); // 1

 

function.length和 arguments的區別:url

function.length:計算形參的長度
arguments:計算實參的長度es5

相關文章
相關標籤/搜索