【发布时间】:2018-12-21 11:01:54
【问题描述】:
来自 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 中是否有避免将某些内容设置为未定义的最佳或常见做法?在这种访问数组的特定情况下,避免将某些内容设置为未定义的最佳方法是什么?
【问题讨论】:
-
const b = a[0] || <something other than undefined>非常好,并且经常完成。 IMO 这是更简洁的方式,以避免重新分配b。 (不必要的重新分配通常是不受欢迎的)
标签: javascript arrays types error-handling undefined