javascript interview question #11

В JavaScript у переменных есть несколько областей видимости. Что будет выведено на экран?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

В первой строке мы видим создание массива animals, в котором хранится 5 строк.

Длина этого массива используется в условии цикла for, поэтому цикл будет работать до тех пор, пока счетчик i не станет равен 5.

Внутри цикла создается еще один массив animals. С таким объявлением массива проблем нет, так как его область видимости распространяется только на блок кода внутри цикла for.

Важно помнить, что хотя мы и объявили новый массив animals с тремя элементами, animals.length в условии цикла до сих пор связана со внешним массивом, и не изменит свое значение.

А console.log внутри цикла будет работать только со внутренним массивом, в котором всего два элемента.

Как только мы выйдем за границы массива, то не получим ошибку как в C++ или Java. Вместо этого, на экран будет выведено сообщение undefined на трех последних итерациях цикла.


ОТВЕТ: В консоль будут напечатаны строки Whale, Dolphin , а после них undefined, undefined, undefined. Каждое значение будет выведено с новой строки.