为什么 Array.length- - 不减 1?

Why does Array.length- - not subtract 1?

当我运行: var a = ["a", "b", "c"] console.log(a.length--) 它打印 3,但是当我 运行 时: var a = ["a", "b", "c"] console.log(a.length-1) 它打印 2. 为什么?自减不等于减1吗? 提前致谢。

decrement operator (--) 递减(减一)它的操作数和 returns 一个值。

如果使用后缀,运算符在操作数之后(例如,x--),减量运算符会减量,returns 减量前的值。

如果使用前缀,在操作数之前加上运算符(例如,--x),减量运算符减量,returns减量后的值。

let x = 3;
const y = x--;

console.log(`x:${x}, y:${y}`);
// expected output: "x:2, y:3"

let a = 3;
const b = --a;

console.log(`a:${a}, b:${b}`);
// expected output: "a:2, b:2"

在 Java 脚本中,您有 2 个不同的快捷方式可以将 int 减一。第一个是您在此处使用的:val--,第二个是 --val。 如果你单独使用它们中的任何一个意味着你有一行只包含 val-- 就是这样,它们做同样的事情(减一)但是如果你将它们与其他东西一起使用(例如 console.log)它们有不同的效果。 如果您使用 val-- 程序将首先记录 val,然后减去 1。但是,如果您使用 --val,它将首先减去 1,然后记录新值。

展示此内容的代码:

Var a = 3;
Var b = 3;

Console.log(a--);
//will print 3
Console.log(--b);
//will print 2

Console.log(a);
//prints 2
Console.log(b)
//prints 2

换句话说,val-- 所做的是从下一行开始减一

它确实从长度中减去 1,但发布的代码并未尝试观察结果:长度为 2 的数组。

var a = ["a", "b", "c"];
console.log(a.length--)
console.log(a);