[JS奇怪的世界]No.20 預設值

預設值

上一章節講解了強制轉型的一些特性,所以這堂課將會試著從另一個角度去利用它的特性,首先課程提供了範例程式碼 ↓

1
2
3
4
5
function green(name) {
console.log('Hello' + name);
}

green('Tom');

大家都知道會出現 Hello Tom 的字樣,好,課程這邊暫停一下,這邊我就開始思考,如果不帶入參數會怎麼樣?

1
2
3
4
5
function green(name) {
console.log('Hello' + name);
}

green();

結果會出現什麼?

undefined

undefined!

所以若沒有傳入參數, avaScript 就會替我們帶入預設值 Undefined,所以我們可以理解成寫在函數的這一段 green(name) 中的 name 其實是一個變數。

另外課程也有講到 JavaScript 原本是無法替函數參數設置預設值,這是 ES6 才新增的,所以當如果我們沒有帶入參數時可以使用 ES6的預設值來替參數預設值 ↓

1
2
3
4
5
function green(name = 'jack') {
console.log('Hello' + name);
}

green();

那結果會如何,還是 Undefined 嗎?

jack

不,不一樣了。

另外如果不想使用 ES6 的參數預設值的做法,可以使用以下這個做法 ↓

1
2
3
4
5
6
function green(name) {
var name = name || 'jack';
console.log('Hello' + name);
}

green();

參數預設值

圖源

JavaScript 全攻略:克服 JS 奇怪的部分

Liker 讚賞

這篇文章如果對你有幫助,你可以花 30 秒登入 LikeCoin 並點擊下方拍手按鈕(最多五下)免費支持與牡蠣鼓勵我。
或者你可以也可以請我「喝一杯咖啡(Donate)」。

Buy Me A Coffee Buy Me A Coffee

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ