邏輯運算符 || 跟 ?? 的差別

結論

  • ??|| 嚴謹
  • ??是左邊只是null或是undefined,才會 return 右邊
    • 是只有nullundefined,就算左邊是 false,也不會 return 右邊,挺有趣的,如下圖
    • null 是 javascript 裡面,是特殊的 object,在某些狀況會被當成是 truthy value,如下圖
  • ||左邊是falsy value 就會 return 右邊

驗證

operator

name 在這邊沒被 assign 成 default value [],因為null被當成是truthy

falsy value 列表

  • false
  • 0
  • -0
  • "" (空字串)
  • NAN
  • null
  • undefined