如何在不使程序崩溃的情况下检查不存在的变量的值?



我有一个来自HTTP get的JSON输出。 然后我从nodejs使用JSON.parse。

输出基本上是这样的:

items: [
snippet: {
foo: "bar",
bar: "foo
}
snippet: {
foo: "bar",
bar: "foo
}
snippet: {
foo: "bar",
bar: "foo
}
]

我的代码是这样的:

foo1 = items[0].snippet.foo
bar1 = items[0].snippet.bar

这个变量声明都工作正常,直到我得到有时可能不存在的变量。

foo4 = items[4].snippet.foo

当然,这里不存在这种情况。我以为我可以简单地做一个 if(foo4 == 'Null'(,然后设置 foo4 = '不存在',这样它以后就不会让我的程序崩溃。但是,当声明此变量本身时,程序崩溃...我怎样才能防止这种情况发生?

在 ES2020 中,有一个很酷的功能称为可选链接和无效合并,因此您可以尝试将它们组合在一起:

foo4 = items[4]?.snippet?.foo ?? 'not existing'

因此,如果items[4]为 null 或未定义的部分items[4]?.snippet?.foo则将 undefined 设置为 foo4,然后运算符??会将默认值添加到变量 foo 4

最新更新