В JavaScript у переменных есть несколько областей видимости. Что будет выведено на экран?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
В первой строке мы видим создание массива animals
, в котором хранится 5 строк.
Длина этого массива используется в условии цикла for
, поэтому цикл будет работать до тех пор, пока счетчик i
не станет равен 5
.
Внутри цикла создается еще один массив animals
. С таким объявлением массива проблем нет, так как его область видимости распространяется только на блок кода внутри цикла for
.
Важно помнить, что хотя мы и объявили новый массив animals
с тремя элементами, animals.length
в условии цикла до сих пор связана со внешним массивом, и не изменит свое значение.
А console.log
внутри цикла будет работать только со внутренним массивом, в котором всего два элемента.
Как только мы выйдем за границы массива, то не получим ошибку как в C++
или Java
. Вместо этого, на экран будет выведено сообщение undefined
на трех последних итерациях цикла.
ОТВЕТ: В консоль будут напечатаны строки Whale
, Dolphin
, а после них undefined
, undefined
, undefined
. Каждое значение будет выведено с новой строки.