来自 Python,看到这个 JavaScript 对我来说很奇怪:
a = []
b = a[0]
b === undefined // returns true
在 Python 中,a[0] 会抛出一个索引错误,并且会阻止您继续并可能在将来遇到更多错误。 B 永远不会被设置为未定义。
在 Python 中我可以这样做:
a = [1, 2, 3]
try:
b = a[5]
except IndexError:
print('Index out of range')
b 永远不能设置为未定义,这样可以防止以后发生潜在的奇怪事情。在 JavaScript 中处理这个问题的最佳方法是什么?我倾向于尝试这样的事情:
a = []
b = a[0] || <something other than undefined>
如果 a 应该是一个对象列表,它可能是:
a = []
b = a[0] || {} // set b to empty object instead of undefined
我认为在 JavaScript 中处理此问题的一种常见方法是进一步处理它:
a = []
b = a[0]
if (b) {
// do something if b is defined
}
// or
if (!b) {
// do something if b is undefined
}
在 JavaScript 中,是否有避免将某些内容设置为未定义的最佳或常见做法?在这种访问数组的特定情况下,避免将某些内容设置为未定义的最佳方法是什么?
最佳答案
你可以使用 in
operator运算符,检查对象/数组中是否存在属性 conditional (ternary) operator ?:
对于值或一些默认值。
这种方法节省了 falsy值(value)观也是如此。
const b = 0 in aa ? a[0] : <something other than undefined>;
关于Javascript 从索引处的数组获取值,同时如果索引不存在则避免未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51318766/