Использование консоли разработчика JavaScript. Консоль разработчика Google Chrome: десять неочевидных полезностей

Большинство веб-разработчиков при отладке приложений используют Google Chrome - это уже ни для кого не секрет. Прежде всего в этом браузере привлекают продвинутые средства для разработчиков. Одним из элементов devtool является консоль, которая в свою очередь гораздо более продвинутая, чем думают о ней большинство разработчиков.

Консоль Google Chrome умеет гораздо больше, чем console.log() . Я опишу некоторые возможности, которые сам применяю чаще всего.

Производные console.log()

Вызов console.log() позволяет отобразить в консоли сообщение.

Var e = { x: 5 }; console.log("Log message", e);

Вызовы info() , warn() и error() позволяют сделать то же самое, визуально выделив сообщение соответствующим стилем. Бывает очень полезно, когда в процессе отладки накапливается большое количество сообщений и трудно выделить какие-то ключевые сообщения.

Var e = { x: 5 }; console.log("Hello! I`m a message", e); console.info("Something happened...", e); console.warn("Wow! You defenitely should pay attention here!", e); console.error("Ooooooops....", e);

Вторым параметром я передал переменную e , содержимое которой также отобразилось в консоли. Chrome позволяет передавать сколько угодно параметров, если вам требуется отобразить не только сообщение, но и состояние каких-либо переменных.

Таблицы

По умолчанию консоль отображает содержимое объекта в виде дерева. Это очень удобно, т.к. вы можете скрывать/раскрывать нужные части объекта и отслеживать в них информацию. Неудобства возникают когда вам нужно отобразить, например , содержимое массива. В этом случае вы получите нечто подобное:


Вместо console.log() в этом случае удобнее использовать console.table() , вот как это выглядит:

Var elements = [ { id: 1, x: "Lorem", y: "ipsum"}, { id: 2, x: "dolor", y: "sit"}, { id: 3, x: "amet", y: "consectetur"}, { id: 4, x: "adipiscing", y: "elit"}, { id: 5, x: "sed", y: "do"} ]; console.table(elements);

Как видно из скриншота, вызов console.table() отображает массив не только в виде таблицы, но и в виде дерева, как при вызове console.log() .

Группировка

Когда сообщения в консоли идут потоком друг за другом бывает полезно объединять их в группы. Делается это путем вызова методов console.group() и console.groupEnd() .

Console.group("Message processing"); console.log("Message processing started...") console.warn("Error during processing list element."); console.log("Done"); console.groupEnd(); console.group("Image processing"); console.log("Image processing started...") console.info("Image size: 500Kb"); console.log("Done"); console.groupEnd();

Если вместо console.group() вызвать console.groupCollapsed() , то сообщения в консоли будут свернуты при отображении.

Console.group("Message processing"); console.log("Message processing started...") console.warn("Error during processing list element."); console.log("Done"); console.groupEnd(); console.groupCollapsed("Some other stuff"); console.log("Blah"); console.info("Blah"); console.warn("Blah"); console.groupEnd(); console.group("Image processing"); console.log("Image processing started...") console.info("Image size: 500Kb"); console.log("Done"); console.groupEnd();

Проверка утверждений

Ассерты - это распространенный метод проверки утверждения в разных языках программирования. Консоль Google Chrome также предоставляет такую возможность. Чтобы выполнить проверку, нужно вызвать console.assert() с двумя параметрами: первый - проверяемое условие , второй - сообщение об ошибке . Если проверяемое условие ложно, то в консоли появится сообщение об ошибке, иначе ничего не произойдет.

Console.assert(1000 > 10, "It`s true, so nothing will happen at console."); console.assert(25 < 10, "25 is not less than 10!");

Подсчет количества вызовов

Когда одно и то же сообщение появляется в консоли несколько раз, бывает удобно вести подсчет сколько раз это произошло. С этим отлично справляется console.count() .

Console.count("Something happened"); console.count("Something happened"); console.count("Something happened"); console.count("Something happened"); console.count("Something happened"); console.count("Something happened"); console.count("Something happened"); console.count("Something happened");

Отображение стека вызовов

Когда при отладке приложения нужно посмотреть стек вызовов, часто используют точки останова и отладчик. Лично мне это неудобно, я предпочитаю отобразить стек в консоли. Я знаю, что для этого некоторые используют хак вроде такого:

Console.log(new Error().stack);

Но на самом деле в Chrome для этого есть специальный метод console.trace() .

Function f1() { console.trace("f1"); } function f2() { f1(); } function f3() { f2(); } f3();

В этом случае в консоли отобразится доступный стек вызовов. И никаких хаков:-)

Форматирование

Chrome позволяет использовать подстановки в выражениях аналогично тому, как это делается в string.Format() в C# или println() в C .

Console.log("Current value: %d", 500);

В этом примере %d означает, что здесь подставляется число. Список доступных значений:

  • %s - строка
  • %i , %d - целое число
  • %f - дробное число
  • %o - DOM-элемент
  • %O - JavaScript-объекта

Отдельного внимания заслуживает %c - если указать его при вызове console.log() , то в параметрах можно передать набор CSS-стилей, которые будут использоваться при отображении.


Бонус - $0

Если во вкладке Elements выделить какой-либо элемент в DOM, то к нему можно обратиться через $0 в консоли. Это очень удобный способ, когда нужно быстро выполнить какие-нибудь манипуляции с DOM-элементом.


Пример работы с $0.

Многиe пользуются браузeрами, дeлающими нас одним цeлым с глобальной сeтью интeрнeт. Однако, как устроeны интeрнeт-странички, как их написать самому - это информация лишь для тeх, кто хочeт создавать что-нибудь новоe. Всe эти возможности скрываются для обычных пользоватeлeй, всe из-за соображeний простоты и интуитивности, однако в данной статьe мы разбeрeм тeму того, как в браузeрe «Яндeкс» открыть консоль, для чeго она создавалась, какой язык поддeрживаeт и многоe другоe. Статья рeкомeндуeтся пользоватeлям нe только «Яндeкс»-браузeра

Для чeго нужна консоль в браузeрe

Всeго eсть три причины для создания консоли в браузeрe:

  • Для отладки самого браузeра eщe на стадии проeктирования.
  • Для обучeния молодых спeциалистов функциям того или иного браузeра.
  • Для отладки профeссионалами своих интeрнeт-страниц в рeальном врeмeни.
  • Нeмногиe знают, но свой сайт можно написать, используя всeго 2 вeщи: знания и блокнот. Однако, такой способ чрeват чрeзвычайно тратой собствeнного врeмeни, потому что вам придeтся пeрeсохранять докумeнт послe каждого измeнeния каких-либо парамeтров. На помощь приходит спeциальная консоль отладки - это нeкоe полe браузeра, в котором содeржится абсолютно вся информация о страничкe и ee исходный код. Исслeдуя eго, можно найти много чeго интeрeсного, в том числe и ошибки разработчиков. Чтобы нe совeршать ошибки, используют консоль браузeра.

    Допустим, что вы создали интeрнeт-страничку, но вам нeобходимо подогнать картинку под нeобходимыe размeры, на выход приходит в консоль, в которой eсть возможность отладки странички в рeальном врeмeни, что очeнь сильно экономит врeмя и силы. В слeдующeй части статьи мы расскажeм, как в браузeрe «Яндeкс» открыть консоль. Данныe знания обязатeльно помогут вам, eсли вы начинающий вeб-мастeр.

    Как открыть консоль разработчика в «Яндeксe»

    Для открытий консоли потрeбуeтся спeциальноe сочeтаниe клавиш. Если почитать докумeнтацию к абсолютно любому браузeру, то можно обнаружить, что пользоваться мышкой дажe нe обязатeльно. Сущeствуeт нeвeроятноe количeство сочeтаний клавиш, способных исполнить любоe вашe жeланиe.

    Инструкция о том, как в браузeрe «Яндeкс» открыть консоль:

  • Запуститe браузeр от «Яндeкса», послe чeго дождитeсь eго полной загрузки в опeративную память, это займeт всeго лишь нeсколько сeкунд.
  • Тeпeрь откройтe любую интeрнeт-страничку, напримeр, Google, но это совсeм нeважно, подойдeт любая.
  • Для открытия инструмeнтов «Яндeкс» нажмитe слeдующиe клавиши: «Ctrl + Shift + I»
  • Если вы хотитe работать имeнно с JavaScript - это такой язык программирования, то нeобходимо будeт зажать слeдующиe клавиши: «Ctrl + Shift + J»
  • Однако, в разных браузeрах отличаются способы открытия консоли, поэтому в слeдующeм пунктe мы пройдeм по самым популярным браузeрам.

    Открытиe консоли в других браузeрах

    Для начала стоит сообщить: нe пытайтeсь использовать одни и тe жe комбинации клавиш на разных браузeрах. Было нeмало случаeв, когда пользоватeли по ошибкe удаляли всe свои закладки, а вeрнуть их бываeт достаточно проблeматично, а иногда и нeвозможно. Поэтому нижe будут привeдeны примeры того, как открывать консоли правильно.

  • Google Chrome. Есть два варианта: зайти в настройки, гдe будeт кнопка открытия консоли, либо нажать сочeтаниe клавиш «Ctrl + Shift + I».
  • Opera. В мeню «Срeдства разработки» будeт кнопка «Исходный код», либо жe сочeтаниe клавиш «Ctrl+ U».
  • Firefox. В настройках браузeра, либо «Ctrl + Shift + J».
  • Safari. F12, или зайти в «Дополнeния», гдe будeт «Показывать мeню для разработчика»
  • В заключeниe

    Надeeмся, что данная статья помогла вам понять то, как открыть в браузeрe «Яндeкс» консоль. Данныe знания особeнно помогут студeнтам, молодым разработчикам, а такжe обычным пользоватeлям, жeлающим узнать про компьютeрныe тeхнологии чуточку большe, вeдь они - будущee нашeго мира.

    |

    Современные браузеры предоставляют встроенные инструменты разработки для JavaScript и других технологий. Среди этих инструментов можно найти консоль, которая похожа на интерфейс оболочки, а также инструменты для проверки DOM, отладки и анализа сетевой активности.

    Консоль можно использовать для регистрации информации как части процесса разработки JavaScript. Также консоль позволяет взаимодействовать с веб-страницей, выполняя выражения JavaScript в контексте страницы. По сути, консоль предоставляет возможность писать код JavaScript и при необходимости управлять им.

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

    Работа с консолью JavaScript в браузере

    Большинство современных веб-браузеров, поддерживающих HTML и XHTML, по умолчанию предоставляют доступ к консоли разработчика, где вы можете работать с JavaScript в интерфейсе, подобном оболочке терминала. В этом разделе вы узнаете, как получить доступ к консоли в Firefox и Chrome.

    Браузер Firefox

    Эти инструменты позволяют проверять и редактировать элементы DOM, а также искать объекты HTML, связанные с конкретной страницей. DOM может показать, имеет ли фрагмент текста или изображение атрибут ID, и может определить значение этого атрибута.

    Кроме того, в боковой панели или под панелью DOM можно найти стили CSS, которые используются в документе HTML или таблице стилей.

    Чтобы отредактировать DOM в реальном времени, дважды кликните по выбранному элементу. Для примера можете попробовать превратить тег

    в

    .

    Опять же, после обновления страница примет прежний вид.

    Вкладка Network

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

    Использовать вкладку Network можно вместе с консолью JavaScript. Например, вы можете начать отладку страницы с помощью консоли, а затем открыть вкладку Network и просмотреть сетевую активность, не перезагружая страницу.

    Отзывчивый дизайн

    Сайты с отзывчивым дизайном быстро адаптируют свой вид и функции на различных устройствах: мобильных телефонах, планшетах, настольных компьютерах и ноутбуках. Размер экрана, плотность пикселей и ответ на прикосновения – факторы, которые следует учитывать при разработке адаптивных сайтов. Также принципы отзывчивого дизайна важно учитывать для того, чтобы веб-сайт был доступным и производительным вне зависимости от устройства, на котором его открывают.

    Современные браузеры (в том числе Firefox и Chrome) предоставляют модели соблюдения принципов отзывчивого дизайна при разработке сайтов и приложений. Эти модели эмулируют поведение того или иного устройства, что позволяет протестировать и проанализировать все функции сайта.

    Больше об этом можно узнать в руководствах браузеров:

    • Responsive Design Mode в Firefox

    Заключение

    В этом руководстве представлен краткий обзор работы с консолью JavaScript в современных веб-браузерах. Также здесь можно найти информацию о других полезных инструментах разработки.

    Многие пользуются браузерами, делающими нас одним целым с глобальной сетью интернет. Однако, как устроены интернет-странички, как их написать самому - это информация лишь для тех, кто хочет создавать что-нибудь новое. Все эти возможности скрываются для обычных пользователей, все из-за соображений простоты и интуитивности, однако в данной статье мы разберем тему того, как в браузере «Яндекс» открыть консоль, для чего она создавалась, какой язык поддерживает и многое другое. Статья рекомендуется пользователям не только «Яндекс»-браузера

    Для чего нужна консоль в браузере

    Всего есть три причины для создания консоли в браузере:

    1. Для отладки самого браузера еще на стадии проектирования.
    2. Для обучения молодых специалистов функциям того или иного браузера.
    3. Для отладки профессионалами своих интернет-страниц в реальном времени.

    Немногие знают, но свой сайт можно написать, используя всего 2 вещи: знания и блокнот. Однако, такой способ чреват чрезвычайно тратой собственного времени, потому что вам придется пересохранять документ после каждого изменения каких-либо параметров. На помощь приходит специальная консоль отладки - это некое поле браузера, в котором содержится абсолютно вся информация о страничке и ее исходный код. Исследуя его, можно найти много чего интересного, в том числе и ошибки разработчиков. Чтобы не совершать ошибки, используют консоль браузера.

    Допустим, что вы создали интернет-страничку, но вам необходимо подогнать картинку под необходимые размеры, на выход приходит в консоль, в которой есть возможность отладки странички в реальном времени, что очень сильно экономит время и силы. В следующей части статьи мы расскажем, как в браузере «Яндекс» открыть консоль. Данные знания обязательно помогут вам, если вы начинающий веб-мастер.

    Как открыть консоль разработчика в «Яндексе»

    Для открытий консоли потребуется специальное сочетание клавиш. Если почитать документацию к абсолютно любому браузеру, то можно обнаружить, что пользоваться мышкой даже не обязательно. Существует невероятное количество сочетаний клавиш, способных исполнить любое ваше желание.

    Инструкция о том, как в браузере «Яндекс» открыть консоль:

    1. Запустите браузер от «Яндекса», после чего дождитесь его полной загрузки в оперативную память, это займет всего лишь несколько секунд.
    2. Теперь откройте любую интернет-страничку, например, Google, но это совсем неважно, подойдет любая.
    3. Для открытия инструментов «Яндекс» нажмите следующие клавиши: «Ctrl + Shift + I»
    4. Если вы хотите работать именно с JavaScript - это такой язык программирования, то необходимо будет зажать следующие клавиши: «Ctrl + Shift + J»

    Однако, в разных браузерах отличаются способы открытия консоли, поэтому в следующем пункте мы пройдем по самым популярным браузерам.

    Открытие консоли в других браузерах

    Для начала стоит сообщить: не пытайтесь использовать одни и те же комбинации клавиш на разных браузерах. Было немало случаев, когда пользователи по ошибке удаляли все свои закладки, а вернуть их бывает достаточно проблематично, а иногда и невозможно. Поэтому ниже будут приведены примеры того, как открывать консоли правильно.

    1. Google Chrome. Есть два варианта: зайти в настройки, где будет кнопка открытия консоли, либо нажать сочетание клавиш «Ctrl + Shift + I».
    2. Opera. В меню «Средства разработки» будет кнопка «Исходный код», либо же сочетание клавиш «Ctrl+ U».
    3. Firefox. В настройках браузера, либо «Ctrl + Shift + J».
    4. Safari. F12, или зайти в «Дополнения», где будет «Показывать меню для разработчика»

    В заключение

    Надеемся, что данная статья помогла вам понять то, как открыть в браузере «Яндекс» консоль. Данные знания особенно помогут студентам, молодым разработчикам, а также обычным пользователям, желающим узнать про компьютерные технологии чуточку больше, ведь они - будущее нашего мира.

    API командной строки Chrome DevTools содержит большое количество удобных функций для выполнения простых задач: выбора и проверки элементов DOM, отображения данных в читаемом формате, запуска и проверки профилировщика и мониторинга событий DOM.

    Примечание: этот API доступен только внутри консоли. Получить доступ к командной строке API из скриптов на странице нельзя.

    $_

    $_ возвращает значение последнего выполненного выражения.

    В примере ниже выполняется простое выражение (2 + 2). Затем выполняется $_ , которому присваивается то же самое значение:

    В этом примере выполненное выражение содержало массив имён. Выполнение $_.length даст длину массива, а само выражение $_ примет значение последнего выполненного выражения, то есть 4:

    $0 – $4

    Команды $0 , $1 , $2 , $3 и $4 работают как ссылки на последние 5 элементов DOM, которые были просмотрены в панели Elements, или на последние 5 JS-объектов из кучи, которые были выбраны в панели Profiles. $0 возвращает элемент или объект, выбранный позже всех, $1 возвращает тот, что был перед ним, и так далее.

    В примере ниже в панели Elements выбран элемент класса medium . В консоли $0 принял такое же значение:

    На картинке ниже выбран другой элемент на той же странице. $0 теперь относится к этому элементу, а $1 - к предыдущему:

    $(selector)

    $(selector) возвращает ссылку на первый элемент DOM с указанным CSS-селектором. Эта функция - сокращение для функции document.querySelector() .

    Кликните правой кнопкой мыши по результату и выберите «Reveal in Elements Panel» для поиска элемента в DOM или «Scroll in to View» для того, чтобы увидеть его на странице.

    Примечание: Если вы используете библиотеки вроде jQuery, которые используют символ $ , то будет использоваться функциональность этой библиотеки.

    $$(selector)

    $$(selector) возвращает массив элементов, содержащих указанный селектор. Эта команда эквивалентна вызову document.querySelectorAll() .

    Следующий пример использует $$() для создания массива из всех элементов в документе и возвращает свойство src каждого элемента:

    Var images = $$("img"); for (each in images) { console.log(images.src); }

    Примечание: Нажмите в консоли Shift + Enter для перехода на новую строку без выполнения скрипта.

    $x(path)

    $x(path) возвращает массив элементов, которые удовлетворяют данному выражению XPath.

    Этот пример вернёт все элементы

    $x("//p")

    А этот - все элементы

    Содержащие элемент :

    $x("//p[a]")

    clear()

    clear() очищает историю консоли.

    Clear();

    copy(object)

    copy(object) копирует строковое представление указанного объекта в буфер обмена.

    Copy($0);

    debug(function)

    При вызове данной функции вызывается отладчик, который позволяет пошагово исполнить её в панели Sources.

    Debug(getData);

    Используйте undebug(fn) для завершения отладки или интерфейс для удаления всех точек останова.

    dir(object)

    dir(object) отображает листинг всех свойств указанного объекта. Этот метод - замена метода console.dir() .

    Следующий пример показывает разницу между вызовом document.body в командной строке и использованием dir() для отображения того же элемента:

    Document.body; dir(document.body);

    Для получения дополнительной информации ознакомьтесь с разделом console.dir() в API консоли.

    dirxml(object)

    dirxml(object) выводит XML-представление указанного объекта. Этот метод эквивалентен методу console.dirxml() .

    inspect(object/function)

    inspect(object/function) открывает и выбирает указанный элемент или объект в соответствующей панели: Elements или Profiles.

    Этот пример открывает document.body в панели Elements:

    Inspect(document.body);

    При передаче функции она открывает документ в панели Sources.

    getEventListeners(object)

    getEventListeners(object) возвращает все слушатели событий, привязанные к указанному объекту. Возвращаемое значение - объект, содержащий массивы для всех найденных типов событий (например, "click" или "keydown"). Элементы каждого массива - это объекты, которые описывают слушатель каждого типа. Например, следующий пример выведет все слушатели событий объекта document:

    GetEventListeners(document);

    Если к объекту привязано более одного слушателя, то массив содержит элементы для каждого из них. Например, здесь к элементу #scrollingList привязаны два слушателя события "mousedown" :

    Можно просмотреть свойства каждого из этих объектов:

    keys(object)

    keys(object) возвращает массив имён свойств объекта. Для получения значения свойств используйте values() .

    Предположим, в вашем приложении объявлен следующий объект:

    Var player1 = { "name": "Ted", "level": 42 }

    Пусть player1 объявлен глобально, тогда keys(player1) и values(player1) выведет следующее:

    monitor(function)

    При вызове указанной функции в консоль выводится сообщение о том, что что эта функция была вызвана с соответствующими аргументами.

    Function sum(x, y) { return x + y; } monitor(sum);

    Для отмены используйте unmonitor(function) .

    monitorEvents(object, )

    Когда одно из указанных событий происходит с указанным объектом, объект Event записывается в консоль. Можно указать конкретное событие, массив событий или один из «типов» событий. Примеры ниже.

    Следующий запрос мониторит все изменения размера объекта window .

    MonitorEvents(window, "resize");

    Этот запрос мониторит все события "resize" and "scroll" в объекте window:

    MonitorEvents(window, ["resize", "scroll"])

    Вы также можете задать один из доступных «типов» событий из таблицы ниже:

    Например, в этом запросе мониторятся все события типа "key" в выбранном элементе в панели Elements:

    MonitorEvents($0, "key");

    Вот пример вывода после набора символов в текстовом поле:

    profile() и profileEnd()

    Для запуска профилирования:

    Profile("My profile")

    Для окончания:

    ProfileEnd("My profile")

    Профили ткже могут быть вложенными:

    Profile("A"); profile("B"); profileEnd("A"); profileEnd("B");

    Результат:

    Примечание: Профилировщики могут работать одновременно, и их необязательно закрывать в порядке создания.

    table(data, )

    Вывод данных объекта в формате таблицы. Например, для вывода списка имён нужно сделать следующее:

    Var names = { 0: { firstName: "John", lastName: "Smith" }, 1: { firstName: "Jane", lastName: "Doe" } }; table(names);

    undebug(function)

    undebug(function) прекращает отладку заданной функции.

    Undebug(getData);

    unmonitor(function)

    unmonitor(function) прекращает мониторинг заданной функции.

    Unmonitor(getData);

    unmonitorEvents(object, )

    unmonitorEvents(object, ) прекращает мониторинг указанного объекта и событий:

    UnmonitorEvents(window);

    Также можно прекращать мониторинг отдельных событий:

    MonitorEvents($0, "mouse"); unmonitorEvents($0, "mousemove");

    values(object)

    values(object) возвращает массив, содержащий значения все свойств указанного объекта.



    gastroguru © 2017