zoukankan      html  css  js  c++  java
  • js非空运算符??你还了解吗

    在 JS 中,?? 运算符被称为非空运算符。如果第一个参数不是 null/undefined(译者注:这里只有两个假值,但是 JS 中假值包含:未定义 undefined、空对象 null、数值 0、空数字 NaN、布尔 false,空字符串'',不要搞混了),将返回第一个参数,否则返回第二个参数。比如,

    null ?? 5 // => 5
    3 ?? 5 // => 3
    

      给变量设置默认值时,以前常用 ||逻辑或运算符,例如,

    var prevMoney = 1
    var currMoney = 0
    var noAccount = null
    var futureMoney = -1
    function moneyAmount(money) {
    return money || `账户未开通`
    }
    console.log(moneyAmount(prevMoney)) // => 1
    console.log(moneyAmount(currMoney)) // => 账户未开通
    console.log(moneyAmount(noAccount)) // => 账户未开通
    console.log(moneyAmount(futureMoney)) // => -1
    

      上面我们创建了函数 moneyAmount,它返回当前用户余额。我们使用 || 运算符来识别没有帐户的用户。然而,当用户没有帐户时,这意味着什么?将无账户视为空而不是 0 更为准确,因为银行账户可能没有(或负)货币。在上面的例子中,|| 运算符将 0 视为一个虚假值,不应该包括用户有 0 美元的帐户。让我们使用?? 非空运算符来解决这个问题:

    var currMoney = 0
    var noAccount = null
    function moneyAmount(money) {
      return money ?? `账户未开通`
    }
    moneyAmount(currMoney) // => 0
    moneyAmount(noAccount) // => `账户未开通`
    

      概括地说 ?? 运算符允许我们在忽略错误值(如 0 和空字符串)的同时指定默认值。

  • 相关阅读:
    希腊字母写法
    The ASP.NET MVC request processing line
    lambda aggregation
    UVA 10763 Foreign Exchange
    UVA 10624 Super Number
    UVA 10041 Vito's Family
    UVA 10340 All in All
    UVA 10026 Shoemaker's Problem
    HDU 3683 Gomoku
    UVA 11210 Chinese Mahjong
  • 原文地址:https://www.cnblogs.com/agen-su/p/14415919.html
Copyright © 2011-2022 走看看