Рубрики
Без рубрики

Две Gotchas in Crome Developer Console

Фото Джейсона Леунг на Unsplash Есть два удивительных поведения на консоли инструмента разработчика Chrome … Tagged с JavaScript, Chrome, Devtools.

фото Джейсон Леунг на Неспособный

Есть два удивительных поведения на консоли инструмента разработчика Chrome («Консоль» дальше).

Первый был указан моим другом Николас Маркора что вы можете ждать асинхрового метода, а второй – это $$ (короткая вырезанная для document.queryselectorall ) Возвращение массива, а не Nodelist объект.

Давайте рассмотрим, как они разные.

1 В ожидании в консоли

В редакторе (я использую функцию фрагменты , которая похожа на царапин, но работает как редактор), ждет не работает так, как должно быть вызвано в рамках асинхрового метода.

Чтобы обойти эту проблему, вы можете обернуть его в асинхронном методе (Async iife в данном случае).

Это было бы нормальным поведением, которое вы ожидаете, но … вы можете ждать в консоли, не завершая заявление в асинхронность Метод ~

Это волшебство ~~~

Это поведение Добавлены в Chrome Devtools с Chrome 62 , выпущен в 2017 году.

Так что это хорошая особенность Но вы должны следить, так как не можете просто вставить свой код в свой редактор. Это должно быть завернуто внутри асинхрового метода.

2⃣ $$ vs Document.queryselectorallal

$$ является частью API Console Cutilities, которая доступна только в консоли, а не часть JavaScript или Дом Анкет

Google Document описывает $$ в качестве

$$ (селектор) возвращает множество элементов, которые соответствуют данному селектору CSS. Эта команда эквивалентна вызова Document.queryselectorall ().

https://developers.google.com/web/tools/chrome-devtools/console/utilities#queryselectorall

В документации говорится, что это эквивалентно вызова document.queryselectorall () но $$ отличается где document.queryselectorall () Возвращает Nodelist объект, пока $$ возвращает массив.

Nodelist это Массивный объект , чей прототип не наследует от Array.prototype . Это означает, а Nodelist Экземпляр объекта не имеет доступа к таким методам, как Массив#карта или Массив#уменьшить .

Не могу карту над объектом Nodelist

Пока вы можете составить на карту $$

Это может вызвать проблему при копировании и вставке кода с помощью $$ Селектор и просто конвертировать его в использование document.queryselectorall () и попытаться позвонить Array.prototype

Вы можете легко преобразовать объект Nodelist в массив, используя Синтаксис спреда или Array.from кстати.

👋 Раздвигающие слова

Консоль может сэкономить вам много клавишных, но вы, возможно, захотите дважды проверить, прежде чем копировать и вставить код из консоли редактору.

Если у вас есть больше, пожалуйста, дайте мне знать 🙂

Пост Две Gotchas in Crome Developer Console появился первым Технический блог Sung .

Оригинал: “https://dev.to/dance2die/two-gotchas-in-chrome-developer-tool-console-11k3”