您好,登錄后才能下訂單哦!
前言
JavaScript函數可以有默認參數值。通過默認函數參數,你可以初始化帶有默認值的正式參數。如果不初始化具有某些值的參數,則該參數的默認值為undefined。
請看下列代碼:
function foo(num1){ console.log(num1); } foo();
在調用函數foo時,你沒有傳遞任何參數,因此變量num1的默認值設置為undefined。但是,有時你可能需要設置默認值而非undefined。過去,最好的策略是測試參數值undefined,然后分配一個值。所以,在上面的例子中,如果你想要將num1的默認值設置為9,那么你可以按照以下代碼所示的方式做:
function foo(num1) { if (num1 === undefined) { num1 = 9; } console.log(num1); } foo();
ECMAScript 6引入了函數的默認參數。使用ECMA 2015的默認參數功能,你將不再需要檢查未定義的參數值。現在,你可以將9設置為參數本身的默認值。你可以重寫上述函數以使用默認值,如下所示:
function foo(num1 =9) { console.log(num1); } foo();
對于函數foo,如果num1參數的值未被傳遞,那么JavaScript將設置9作為num1的默認值。
檢查未定義的參數
即使你在調用函數時明確地傳遞undefined作為參數值,參數值也將設置為默認值。
function foo(num1 =9) { console.log(num1); } foo(undefined);
在上面的代碼中,你傳遞undefined為num1的值;因此,num1的值將被設置為默認值9。
運行時計算默認值
JavaScript函數默認值在運行時計算。為了更好地理解這一點,請看以下代碼:
function foo(value = koo()) { return value; } function koo() { return "Ignite UI"; } var a = foo(); console.log(a);
在函數foo中,參數值的默認值設置為函數koo。在運行時調用函數foo時,將計算函數koo。調用foo函數后,你會得到如下圖所示的輸出(在這個例子中,我們使用了Ignite UI框架)。
重用默認參數
默認參數可供之后的默認參數使用。請看下列代碼:
function foo(num1 = 9, num2 = num1 + 8){ console.log(num2); } foo();
在上面的代碼中,使用num1的默認值來計算num2的默認值。調用函數foo時將得到以下輸出:
結論
JavaScript默認參數在編寫函數時非常有用。在調用函數時,如果缺少參數,則默認參數功能允許你為函數參數分配默認值,而不是將其定義為undefined。
英文原文:Easy JavaScript Part 3: What Is a Default Parameter in a Function?
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。