小编Zac*_*lor的帖子

Javascript从索引处的数组获取值,同时如果索引不存在则避免未定义?

来自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 …
Run Code Online (Sandbox Code Playgroud)

javascript arrays error-handling types undefined

5
推荐指数
1
解决办法
1216
查看次数

标签 统计

arrays ×1

error-handling ×1

javascript ×1

types ×1

undefined ×1