如何在不使程序崩溃的情况下检查不存在的变量的值?
如何在不使程序崩溃的情况下检查不存在的变量的值?
我有一个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]
为空或未定义的部分,items[4]?.snippet?.foo
将把undefined设置为foo4,然后运算符??
将向变量foo 4添加默认值
最新文章
- English digest
- 俞敏洪一分钟励志演讲
- 如何使用Annotation
- 香港中文大学教授、麻省理工牛人林达华解说现代数学体系
- linux中三台主机之间互信,22、linux的ssh互信配置
- echarts tooltip层级
- json php 传输,使用JSON实现数据的跨域传输的php代码
- c语言中 #include < > 和include “ “的区别
- Cygwin、Msys、MinGW、Msys2的区别与联系
- mmap函数使用
- R语言实现聚类kmeans
- Linux 终端 基本指令
- itoa()和atoi()函数详解
- C++实现matlab中的interp1和interp2插值
- 线性内插interp1函数用法
- c语言return 0和return 1的区别
- CList 用法
- SSL单向、双向认证
- word 如何设置页码?分页?分节?
- 2022年执法资格刑侦执法考试多选题专项训练题及答案