【Day16】逻辑运算子及函式预设值

逻辑运算子

  • &&(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 参考文件查看

以上就是今天的内容,我们明天见!!


<<:  Day4- D3选取器:Selection

>>:  案例:MLOps在医疗产业(下) - 3个局限性与4个学习要点

[Day 29] tinyML应用实例分享

话说受到火鸡姐的鼓舞(其实是逃命),我来到了中国厨艺学院(其实是少林寺的伙房)拜师学艺,没想到得罪了...

Day10-旧网站重写成Vue_1_收合式选单

今天开始来把这个我第一个网站写成vue版本 https://sweetyue9045.github....

Day17 将电脑接上喇叭 - 谈 Lua 的错误处理

pcall, xpcall, debug 今天我想来玩玩麦块的喇叭,然後再继续探索 Lua 的语法 ...

Day-26 吹奏创意的一曲、红透半边天的 Switch

面对效能强大的 PS4 与 XB1、任天堂这次依然不跟对手比效能、以创意来对决、而且还因为怕被对手复...

[17] [烧瓶里的部落格] 07. 专案可安装化(打包)

专案可安装化可以让你的专案在不同环境里面安装,就像你在专案中安装 Flask 或是其他套件库一样 如...