JS中的数组长度

xde*_*000 -1 javascript arrays

var a = [1,4,5];
var e = a.length--;
Run Code Online (Sandbox Code Playgroud)

这里的e变量将包含5.但如果我这样做:

var e = a.length-=1;
Run Code Online (Sandbox Code Playgroud)

这里e将包含2个元素数组.
那么第一个是模拟pop()数组方法的语言'tip'?

在语言语法中做:

a--
Run Code Online (Sandbox Code Playgroud)

要么

a-=1
Run Code Online (Sandbox Code Playgroud)

在语义上是相同的.

Fer*_*yer 5

var a = [1, 4, 5];
var e = a.length--;
Run Code Online (Sandbox Code Playgroud)

是相同的

var a = [1, 4, 5];
var e = a.length;
a.length = a.length - 1;
Run Code Online (Sandbox Code Playgroud)

 var a = [1, 4, 5];
 var e = a.length -= 1;
Run Code Online (Sandbox Code Playgroud)

是相同的

var a = [1, 4, 5];
a.length = a.length - 1;
var e = a.length;
Run Code Online (Sandbox Code Playgroud)

var a = [1, 4, 5];
var e = --a.length;
Run Code Online (Sandbox Code Playgroud)

换句话说:x--在递减之前返回值,而--x(和x - = 1)在递减之后返回值.所有这些代码片段都弹出数组a的最后一个元素.

请注意,在第一个示例中e = a.length--,e的值为3,而不是5,因此它相同a.pop().