Не понятный для меня вывод div в консоль
let div = document.querySelector('div');
div.innerHTML = 'raz';
console.log(div);
div.innerHTML = 'dva';
console.log(div);
<div></div>
Почему в консоли два раза выводится 'dva'. А не 'raz' и следом 'dva'.
Проверил в трех браузерах. Везде такой вывод.
Ответы (2 шт):
Пожалуйста, обратите внимание, что если вы логируете объекты в последних версиях Chrome и Firefox, то что вы вывели в консоль, является ссылкой на объект, и не обязательно является его "значением" на момент вызова console.log()
Есть ответ на английском на схожий вопрос.
Не факт, что синхронность консоли гарантирована в этом случае. Скорее всего на момент когда консоль выводит на экран первый раз, div уже имеет второй текст. Если вы именно div.innerHTML напишите, то будет верно, потому что выводится текст, а не представление дива. Такое же поведение может быть во многих местах консоли, когда вы выводите объекты вместо примитивов.