iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0
自我挑戰組

JavaScript 核心觀念系列 第 16

【Day16】邏輯運算子及函式預設值

  • 分享至 

  • xImage
  •  

邏輯運算子

  • &&(and)

    使用方式: expr1 && expr2

    說明:主要用來驗證兩個值是否皆為真值(Truthy),當 expr1假值(Falsy)時,則回傳 expr1,否則就回傳 expr2

    範例:

    console.log(0 && 1);  // 0
    console.log(1 && 0);  // 0
    console.log(1 && 'weiwei');  // 'weiwei'
    
  • ||(or)

    使用方式: expr1 || expr2

    說明:驗證兩個值的其中一個是否為真值(Truthy),當 expr1真值(Truthy)時,則回傳 expr1,否則就回傳 expr2

    範例:

    console.log(0 || 1);  // 1
    console.log(1 || 0);  // 1
    console.log(1 || 'weiwei');  // 1
    
  • !(not)

    使用方式: !expr

    說明:當 expr 為真值(Truthy)時回傳 false,如果是假值(Falsy)時則回傳 true

    範例:

    console.log(!0);  // true
    console.log(!1);  // false
    console.log(![]);  // false
    console.log(!'weiwei');  // false
    

相關文件可到 MDN 參考文件查看

函式預設值

以前的方法:

let originCash = 1000;

function updateCash(cash){
    // 使用邏輯運算子
    cash = cash || 100;
    let money = cash + originCash;
    console.log(`我有 ${money} 元`);
}

updateCash(0);  // 1100

上方函式如果代入 0 的話,所產生的數字為 1100 這是錯的

要解決這問題可以使用三元運算子來判斷,如下所示:

let originCash = 1000;

function updateCash(cash){
    // 使用三元運算子
    cash = (cash || cash !== false) ? cash : 100;
    let money = cash + originCash;
    console.log(`我有 ${money} 元`);
}

updateCash(0);  // 1000

ES6 的方法:

let originCash = 1000;

// 直接將預設值設在 () 中
function updateCash(cash = 100){
    money = cash + originCash;
    console.log(`我有 ${money} 元`);
}

updateCash(0);  // 1000

函式預設值參考資料可到 MDN 參考文件查看

以上就是今天的內容,我們明天見!!


上一篇
【Day15】寬鬆相等、嚴格相等以及隱含轉型
下一篇
【Day17】物件結構與存取
系列文
JavaScript 核心觀念30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言