Javascript консоли браузера Chrome о document.querySelectorAll ('div') и document.querySelectorAll ('div') [0] - PullRequest
0 голосов
/ 06 июля 2018
var a = document.querySelectorAll('div');
console.log(a)
alert(11)

Браузер сначала выводит содержимое консоли, затем оповещает однако, измените демо

var a = document.querySelectorAll('div')[0];
console.log(a)
alert(11)

Браузер сначала выдает предупреждение, а затем выводит содержимое консоли, то же самое относится и к document.getElementsByClassName, проверка на долгое время не удалась, но также надеюсь ответить

1 Ответ

0 голосов
/ 06 июля 2018

В главе «Вы не знаете, JS: асинхронность и производительность»:

Не существует спецификации или набора требований относительно работы методов console.* - они официально не являютсячасть JavaScript, но вместо этого добавляются в JS средой хостинга (см. заголовок «Типы и грамматика» этой серии книг).

Итак, различные браузеры и среды JS делают, как им угодно, что можетиногда приводят к запутанному поведению .

В частности, существуют некоторые браузеры и некоторые условия, которые console.log(..) действительно не выводят немедленно того, что ему дано.Основной причиной этого может быть , потому что ввод / вывод является очень медленной и блокирующей частью многих программ (не только JS) .Таким образом, он может работать лучше (с точки зрения страницы / пользовательского интерфейса) для браузера, чтобы обрабатывать ввод / вывод асинхронно в фоновом режиме, даже если вы даже не подозреваете, что это произошло.

Как вы можете видеть извывод console.log(a) фактически выполняется до alert(11), за исключением того, что значение a отображается не сразу.

После того, как мы нажмемКнопка ОК,

Как видите, тег div находится в первой строке результата.И undefined в следующей строке является результатом alert(11).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...