Javascript 为什么`--array.length`删除数组的最后一个元素?

Javascript 为什么`--array.length`删除数组的最后一个元素?,javascript,Javascript,在javascript中,chrome控制台: var test = [0, 1, 2, 3, 4] > undefined var lastIdx = --test.length > undefined lastIdx > 4 test > [0, 1, 2, 3] var lastIdx = --(test.length) > undefined lastIdx > 3 test > [0, 1, 2] 正如您已经看到的,我只想通过--array.

在javascript中,chrome控制台:

var test = [0, 1, 2, 3, 4]
> undefined
var lastIdx = --test.length
> undefined
lastIdx
> 4
test
> [0, 1, 2, 3]
var lastIdx = --(test.length)
> undefined
lastIdx
> 3
test
> [0, 1, 2]
正如您已经看到的,我只想通过
--array.length
获取数组的最后一个索引,但不幸的是数组的最后一个元素意外地被删除了,真的无法理解为什么会发生这种情况,有人能解释一下吗?

--x
递减
x
,并返回新值。(
x--
递减
x
并返回旧值。)因此
--test.length
将长度减少1


如果您只想在不修改长度的情况下获取最后一个索引,那就是
test.length-1

--
并不意味着“比这个数字少一个”。它也会减少你应用它的次数。和往常一样,JS和他的古怪玩意儿…使用var lastIdx=test.length-1@felipsmartins-预期行为没有什么奇怪的,换句话说,这就像说
array.length=array.length-1