JavaScript函數(shù)可以有默認參數(shù)值。通過默認函數(shù)參數(shù),你可以初始化帶有默認值的正式參數(shù)。如果不初始化具有某些值的參數(shù),則該參數(shù)的默認值為undefined。 請看下列代碼: function foo(num1){ console.log(num1);}foo(); 在調(diào)用函數(shù)foo時,你沒有傳遞任何參數(shù),因此變量num1的默認值設置為undefined。但是,有時你可能需要設置默認值而非undefined。過去,最好的策略是測試參數(shù)值undefined,然后分配一個值。所以,在上面的例子中,如果你想要將num1的默認值設置為9,那么你可以按照以下代碼所示的方式做: function foo(num1) { if (num1 === undefined) { num1 = 9; } console.log(num1);}foo(); ECMAScript 6引入了函數(shù)的默認參數(shù)。使用ECMA 2015的默認參數(shù)功能,你將不再需要檢查未定義的參數(shù)值?,F(xiàn)在,你可以將9設置為參數(shù)本身的默認值。你可以重寫上述函數(shù)以使用默認值,如下所示: function foo(num1 =9) { console.log(num1);}foo(); 對于函數(shù)foo,如果num1參數(shù)的值未被傳遞,那么JavaScript將設置9作為num1的默認值。 檢查未定義的參數(shù)即使你在調(diào)用函數(shù)時明確地傳遞undefined作為參數(shù)值,參數(shù)值也將設置為默認值。 function foo(num1 =9) { console.log(num1);}foo(undefined); 在上面的代碼中,你傳遞undefined為num1的值;因此,num1的值將被設置為默認值9。 運行時計算默認值JavaScript函數(shù)默認值在運行時計算。為了更好地理解這一點,請看以下代碼: function foo(value = koo()) { return value;}function koo() { return 'Ignite UI';}var a = foo();console.log(a); 在函數(shù)foo中,參數(shù)值的默認值設置為函數(shù)koo。在運行時調(diào)用函數(shù)foo時,將計算函數(shù)koo。調(diào)用foo函數(shù)后,你會得到如下圖所示的輸出(在這個例子中,我們使用了Ignite UI框架)。 重用默認參數(shù)默認參數(shù)可供之后的默認參數(shù)使用。請看下列代碼: function foo(num1 = 9, num2 = num1 + 8){ console.log(num2);}foo(); 在上面的代碼中,使用num1的默認值來計算num2的默認值。調(diào)用函數(shù)foo時將得到以下輸出: 結(jié)論JavaScript默認參數(shù)在編寫函數(shù)時非常有用。在調(diào)用函數(shù)時,如果缺少參數(shù),則默認參數(shù)功能允許你為函數(shù)參數(shù)分配默認值,而不是將其定義為undefined。 譯文鏈接:http://www./article/easy-javascript-05-hoisting.html
英文原文:Easy JavaScript Part 5: Simplifying Function Hoisting 翻譯作者:碼農(nóng)網(wǎng) – 小峰 |
|
來自: 云夢天涯rqxe9h > 《JAVA》