gpt4 book ai didi

javascript - 是否可以在 javascript 中检查空内联?

转载 作者:可可西里 更新时间:2023-11-01 02:20:14 24 4
gpt4 key购买 nike

我有一个函数可以解析 Google Maps API JSON 的地址组件,然后返回城市/地区/路线名称。

如果找不到 key ,getAddressComponent() 将返回一个 null

let route = getAddressComponent(addressComponents, 'route').value.long_name;

假设它没有找到 key ,然后我得到一个错误:TypeError:无法读取未定义的属性“long_name”,显然是因为它没有定义。

除条件方法 (a === null) 之外,如何在 javascript 中检查 null

如何使用 简单地进行检查?

编辑:安全导航运算符(operator)

let route = getAddressComponent(addressComponents, 'route')?.value.long_name;

如果它不存在,它可能会将 route 设置为 null 而不是抛出错误?

最佳答案

2020 答案,它存在!!!

您现在可以直接使用 ?. 内联来测试是否存在。它被称为 Optional Chaining Operator,所有现代浏览器都支持它。

如果属性存在,它会进行下一次检查,或者返回值。任何故障都会立即短路并返回undefined

const example = {a: ["first", {b:3}, false]}

example?.a // ["first", {b:3}, false]
example?.b // undefined

example?.a?.[0] // "first"
example?.a?.[1]?.a // undefined
example?.a?.[1]?.b // 3

domElement?.parentElement?.children?.[3]?.nextElementSibling

为确保默认定义值,您可以使用??。如果您需要第一个真值,可以使用 ||

example?.c ?? "c"  // "c"
example?.c || "c" // "c"

example?.a?.[2] ?? 2 // false
example?.a?.[2] || 2 // 2

如果不检查大小写,则左侧属性必须存在。如果没有,它将抛出异常。

example?.First         // undefined
example?.First.Second // Uncaught TypeError: Cannot read property 'Second' of undefined

?. Browser Support - 94%,22 年 10 月

?? Browser Support - 94%

Node Support - v14+

关于javascript - 是否可以在 javascript 中检查空内联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48341869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com