这是什么?。操作员和我在哪里可以使用??JavaScript中的空合并运算符

这是什么?。操作员和我在哪里可以使用??JavaScript中的空合并运算符,javascript,Javascript,我发现了这段代码:这里,什么是?。JavaScript操作符?根据下面提到的代码片段,我是否能够在JavaScript中使用?空合并运算符,而不是|或运算符 const location = { lat: data?.coords?.latitude, long: data?.coords?.longitude } 你问什么有点不清楚。此代码: const location = { lat: data?.coords?.latitude, long: data?.coords?

我发现了这段代码:这里,什么是
?。
JavaScript操作符?根据下面提到的代码片段,我是否能够在JavaScript中使用
空合并运算符,而不是
|
或运算符

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

你问什么有点不清楚。此代码:

const location = {
  lat: data?.coords?.latitude,
  long: data?.coords?.longitude
}
如果
数据
数据,则将
未定义
分配给
lat
。coords
未定义
(而不是抛出错误)。但是如果
data
data.coords
都不是
null
undefined
,它将
data.coords.latitude
data.coords.longitude
分配给
lat
long
。是新接线员

下一行也使用它,但是:

  • 如果
    uid
    可能是错误的值(如
    0
    ),则还应使用新运算符:
    ??
    而不是
    |

  • 如果
    auth
    可能是
    null
    未定义的
    ,则需要另一个
    ?。

  • 因此:


    从技术上讲,您应该使用
    ??
    而不是
    |
    ,因为
    uid
    可能会返回一个既不是空值也不是未定义的错误值:
    const docId=auth.currentUser?.uid123'
    @ViduminiKulathunga这是唯一的答案,这能回答你的问题吗?请参阅和MDN上关于和的文档。这很好,因为当JS允许像C#中那样的空条件运算符时?这是新的还是我已经错过很久了?@Cid
    const location = {
      lat: data?.coords?.latitude,
      long: data?.coords?.longitude
    }
    
    const docId = auth?.currentUser?.uid ?? '123'