Zac*_*lor 5 javascript arrays error-handling types undefined
来自Python,看到这个JavaScript对我来说很奇怪:
a = []
b = a[0]
b === undefined // returns true
Run Code Online (Sandbox Code Playgroud)
在Python中,[0]会抛出索引错误,并且会阻止您继续并可能在将来遇到更多错误.B永远不会被设置为未定义.
在Python中我可以做类似的事情:
a = [1, 2, 3]
try:
b = a[5]
except IndexError:
print('Index out of range')
Run Code Online (Sandbox Code Playgroud)
b永远不能设置为undefined,这可以防止以后发生潜在的奇怪事情.在JavaScript中处理此问题的最佳方法是什么?我倾向于想尝试这样的事情:
a = []
b = a[0] || <something other than undefined>
Run Code Online (Sandbox Code Playgroud)
在a应该是对象列表的情况下,它可以是:
a = []
b = a[0] || {} // set b to empty object instead of undefined
Run Code Online (Sandbox Code Playgroud)
我认为在JavaScript中处理此问题的常用方法是进一步处理它:
a = []
b = a[0]
if (b) {
// do something if b is defined
}
// or
if (!b) {
// do something if b is undefined
}
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,是否存在避免将某些内容设置为未定义的最佳或常见做法?在这种访问数组的特定情况下,避免将某些内容设置为undefined的最佳方法是什么?
您可以使用in
运算符运算符,它使用条件(三元)运算符检查对象/数组中是否存在属性?:
以获取值或某些默认值。
这种方法也可以保存错误值。
const b = 0 in aa ? a[0] : <something other than undefined>;
Run Code Online (Sandbox Code Playgroud)