数组下标

今天在twitter上看到了一个帖子觉得还不错,是关于数组下标的。

const a = [];
const b = [];
a[(2**32)-1] = 'x'
b[(2**32)-2] = 'x'

这两个有什么区别吗?

可以发现a这个数组,有一个元素, 这个元素的值是x

再看看这个b数组,会发现他有2**32 - 2个空元素,然后再是一个x的值。

为什么会这样?

这就说明了数组下标的最大值。

最大值就是到2**32 - 2,如果超过这个数值,那么下标就不会被当做数字,直接当做一个字符串来解释。

Last updated