首页 > 解决方案 > 是什么 ?。运营商和我可以在哪里使用?JavaScript 中的空值合并运算符

问题描述

我找到了这段代码:这里,什么是?.JavaScript 运算符?根据下面提到的代码片段,我能否??在 JavaScript 中使用 Nullish Coalescing Operator 而不是OR 运算符?||

const location = {
  lat: data?.coords?.latitude,
  long: data?.coords?.longitude
}
const docId = auth.currentUser?.uid || '123'

标签: javascript

解决方案


有点不清楚你在问什么。这段代码:

const location = {
  lat: data?.coords?.latitude,
  long: data?.coords?.longitude
}

分配undefinedlatifdatadata.coordsis nullor undefined(而不是抛出错误)。但是如果anddata都不data.coords是or ,它会将and分配给and 。它是新的可选链运算符。 nullundefineddata.coords.latitudedata.coords.longitudelatlong

下一行也使用它,但是:

  1. 如果uid可能是假值(如""or 0),您也应该使用新的空值合并运算符:??而不是||.

  2. 如果auth可能是nullor undefined,您需要另一个?.

所以:

const docId = auth?.currentUser?.uid ?? '123'

推荐阅读