Что будет выведено в консоль?

Что будет выведено в консоль?


Ответ:

[ 0, 0, 0 ]

Объяснение:

На первой строке создаётся массив foo. Далее идёт интересный цикл. Во-первых, у цикла нет тела. Да, так можно, и это будет работать.

Во-вторых, переменная i объявляется без ключевого слова var, let или const. В нестрогом режиме ошибки не будет, переменная просто повесится на глобальный объект window.

Ну и последнее: в месте цикла, где обычно идёт шаг, происходит что-то странное. Так как у оператора [] приоритет больше, чем у оператора ++ , то сначала элементу массива по индексу i присваивается 0 , а потом переменная i увеличивается на 1.

Код:

const foo = [1, 2, 3];

for (i = 0; i < foo.length; foo[i++] = 0);

console.log(foo);


Report Page