小编tom*_*pos的帖子

当用作对象键时,JavaScript为什么将一个字符串的数组转换为字符串?

我遇到了JavaScript表现有些令人困惑的情况。

假设我们有一个带有两个键foo和bar的对象。

a = { foo: 1, bar: 2 }
Run Code Online (Sandbox Code Playgroud)

然后,我有一个字符串数组,在这种情况下是一个'foo'

b = ['foo']
Run Code Online (Sandbox Code Playgroud)

我期望以下几点:

a[b] == undefined
a[b[0]] == 1
Run Code Online (Sandbox Code Playgroud)

但是,这是发生了什么:

a[b] == 1
a[b[0]] == 1
Run Code Online (Sandbox Code Playgroud)

为什么将JavaScript ['foo'] -> 'foo'用作键时会进行转换?

外面有人知道原因吗?

如何预防?

javascript

23
推荐指数
2
解决办法
625
查看次数

标签 统计

javascript ×1