Варианты умножения длины массива на 2
Анонимный массив
[].length = [].length * 2
Мы получим 0 т. к. изначальное значение длины анонимного массива ноль. Умножение на ноль даёт ноль (стандартная математика)
Именованный массив
var massiv = [5,"efim360.ru", true, [1,2], {a:2}]
Текущая длина массива равна 5. Умножим длину этого массива на 2.
Понятная запись
massiv.length = massiv.length * 2
Короткая запись
massiv.length *= 2
Задачка
А сколько будет так? Уверен вы не угадаете =)
[].length = [,,,].length * 2
Длина этого массива будет равняться 6, а не 8.
Итог
Как это работает? Сперва может показаться «масло масляное». Знак равенства «=» означает «присваивание». То что справа от равно «=» присваивается тому что слева.
Сначала высчитывается то что справа, а потом полученное значение присваивается тому что слева от знака равенства.
По сути левая часть — это ссылка на оперативную память, в которой произойдёт замена. Левая часть ждёт выполнения операций справа. Правая часть работает с текущими значениями.
Ссылки
JavaScript | Как увеличить длину массива?
JavaScript | Как уменьшить длину массива?
JavaScript | Как изменить длину массива?
ECMAScript — Living Standard — https://tc39.es/ecma262/#sec-array-objects
ECMAScript — Living Standard — https://tc39.es/ecma262/#sec-punctuators