Привет, подскажи, пожалуйста, как добиться нормального вывода в 5 строчке? Насколько я понимаю, console.log() выполняется асинхронно и 9 строка отрабатывает раньше 5.
Привет) Неа, js выполняет всё по порядку. Скажи, пожалуйста, а что именно тебя смущает в выводе console.log в твоем примере? Вроде всё логично работает:
- строка 5 выводит весь массив;
- строка 7 выводит строку, содержащую элементы массива;
- строка 9 выводит последний элемент массив и удаляет его из массива;
- строка 11 выводит вес массив без последнего элемента.
Пробуй другой браузер. Твой браузер немного глуп (извини) :) Он в консоль выводит данные по ссылке. Заметь, что второй вывод содержит все элементы массива, а первый уже с урезанным массивом. Это объясняется тем, что массив передается во все функции, методы и тд. как ссылка. Т.е. в консоль он тоже как ссылка на ячейку памяти попадает. Мои все браузеры сразу после вызова console.log() делают слепок его (копию), и уже по мере возможности печатают этот слепок в саму консоль. А твой браузер, по всей видимости, этого слепка не делает, а лишь сохраняет ссылку на массив, и когда дело доходит до печати массива в консоль - ссылка на массив уже не имеет одного элемента.
Извини, что долго не отвечал. Работы много) Видать проблема в ОСи. На винде консоль в хроме и FF работает так как надо (код для теста копировал с твоей той ссылки).