Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Отладка в браузере Chrome

Лекция



Привет, сегодня поговорим про отладка в браузере chrome, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое отладка в браузере chrome , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend).


  1. Общий вид панели Sources
  2. Точки остановки
  3. Остановиться и осмотреться
  4. Управление выполнением
  5. Консоль
  6. Ошибки
  7. Итого

Перед тем, как двигаться дальше, поговорим об отладке скриптов.

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

На текущий момент самые многофункциональные инструменты — в браузере Chrome. Также очень хорош Firebug (для Firefox).

Общий вид панели Sources

Зайдите на страницу tutorial/debugging/pow/index.html браузером Chrome.

Откройте инструменты разработчика: F12 или в меню Инструменты > Инструменты Разработчика.

Выберите сверху Sources:

Отладка в браузере Chrome

Кнопки, которые мы будем использовать:

  1. Раскрывает список скриптов и стилей, подключенных к странице.
  2. Включает-выключает консоль (ESC).
  3. Двойное нажатие на эту кнопку заставляет отладчик останавливаться на ошибках JavaScript (кнопка поменяет цвет на фиолетовый).
  4. Код можно отлаживать в отформатированном виде, если включить эту кнопку.
  5. Панель управления потоком исполнения в режиме отладки. Нам она скоро понадобится.

Точки остановки

Зашли на страницу? Раскройте список скриптов, нажав на кнопку 1, и выберите pow.js. Кликните на 6й строке, прямо на цифре 6.

Поздравляю! Вы поставили свой первый «брейкпойнт».

Слово Брейкпойнт (breakpoint) — часто используемый английский жаргонизм. В русскоязычных пособиях используется термин «точка остановки». Это то место в коде, где отладчик будет останавливать выполнение JavaScript, как только оно до него дойдет.

В остановленном коде можно посмотреть любые переменные, выполнить команды и т.п.

Отладка в браузере Chrome

Справа-снизу находится вкладка Breakpoints, в ней можно:

  • Просматривать точки остановки.
  • Выключать их кликом на чекбокс.
  • При клике на точку остановки происходит переход на соответствующее место кода (удобно, когда их много).

 

Дополнительные возможности
  • Остановку можно инициировать и напрямую из кода скрипта, командойdebugger:
    1 function pow(x, n) {
    2   ...
    3   debugger; // <-- отладчик остановится тут
    4   ...
    5 }
  • Правый клик на цифру строки позволяет создать условную точку остановки (conditional breakpoint), т.е. Об этом говорит сайт https://intellect.icu . задать условие, при котором точка остановки сработает.

    Это удобно, если остановка нужна только при определенном значении переменной или параметра функции.

 

Остановиться и осмотреться

Наша функция выполняется сразу при загрузке страницы, так что самый простой способ активировать JavaScript — перезагрузить ее. Итак, нажимаем F5.

Если вы сделали все, как описано выше, то выполнение прервется как раз на 6й строке.

Отладка в браузере Chrome

Обратите внимание на информационные вкладки справа (отмечены стрелками).

В них мы можем посмотреть текущее состояние:

  1. Watch Expressions — показывает текущие значения любых выражений.

    Можно раскрыть эту вкладку, нажать мышью + на ней и ввести любое выражение или имя переменной. Отладчик будет отображать его значение.

  2. Call Stack — вложенные вызовы (иначе называют «стек вызовов»).

    На текущий момент видно, отладчик находится в функции pow (pow.js, строка 6), вызванной из анонимного кода (index.html, строка 13).

  3. Scope Variables — переменные.

    На текущий момент строка 6 еще не выполнилась, поэтому result равен undefined.

    В Local показываются переменные функции: объявленные через var и параметры. Вы также можете там видеть переменную this, она создается автоматически. Если вы не знаете, что она означает — ничего страшного, мы это обсудим в главе Контекст this в деталях.

    В Global — глобальные переменные, которые находятся вне функций.

Управление выполнением

Пришло время погонять скрипт и «оттрейсить» (от англ. trace, отслеживать) его работу.

Обратим внимание на панель управления в ней есть 4 основные кнопки:

Отладка в браузере Chrome — продолжить выполнение (F8).
Если скрипт не встретит новых точек остановки, то на этом работа в отладчике закончится.

Нажмите на эту кнопку.

Вы увидите, что отладчик остался на той же строке, но в Call Stack появился новый вызов. Это произошло потому, что в 6й строке находится рекурсивный вызов функции pow, т.е. управление перешло в нее опять, но с другими аргументами.

Походите по стеку вверх-вниз — вы увидите, что действительно аргументы разные.

Отладка в браузере Chrome — сделать шаг, не заходя внутрь функции (F10).
Выполняет одну строку скрипта. Если в ней есть вызов функции — то отладчик обходит его стороной, т.е. не переходит на код внутри.

Нажмите на эту кнопку.

Отладчик перейдет на строку 7. Все правильно, хотя есть и тонкость.

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

…Но в данном случае вложенный вызов будет с n=1, поэтому сработает if и до строки 6 управление не дойдет. Поэтому и остановки нет.

Отладка в браузере Chrome — сделать шаг (F11).
Переходит на следующую строку кода. Если есть вложенный вызов, то внутрь функции.
Отладка в браузере Chrome — выполнять до выхода из текущей функции (Shift + F11).
Как только текущая функция завершилась, отладчик тут же останавливает скрипт.

Удобно в случае, если мы нечаянно вошли во вложенный вызов, который нам совсем не интересен — чтобы быстро из него выйти.

Отладка в браузере Chrome — отключить/включить все точки остановки.
Эта кнопка никак не двигает нас по коду, она позволяет временно отключить все точки остановки в файле.

Процесс отладки заключается в том, что мы останавливаем скрипт, смотрим, что с переменными, переходим дальше и ищем, где поведение отклоняется от правильного.

 

Дополнительные возможности

Правый клик на номер строки позволяет запустить выполнение кода до нее (Continue to here).

Это очень удобно, если промежуточные строки нас не интересуют.

 

Консоль

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

В нее можно перейти, нажав кнопку «Console» вверху-справа, а можно и открыть в дополнение к отладчику, нажав на кнопку Отладка в браузере Chrome или клавишей ESC.

Самая любимая команда разработчиков: console.log(...).

Она пишет переданные ей аргументы в консоль, например:

   
1 // результат будет виден в консоли
2 for(var i=0; i<5; i++) {
3   console.log("значение", i);
4 }

 

Полную информацию по специальным командам консоли вы можете получить на страницеhttp://firebug.ru/commandline.html. Эти команды также действуют в Firebug (отладчик для браузера Firefox).

Консоль поддерживают все браузеры, но IE<10 поддерживает не все функции. Логирование работает везде, пользуйтесь им вместо alert.

Ошибки

Ошибки JavaScript выводятся в консоли.

Например, откройте страницу tutorial/debugging/pow-error/index.html. Предыдущую отладку можно прекратить (очистить брейкпойнты Отладка в браузере Chrome и затем продолжить Отладка в браузере Chrome).

В консоли вы увидите что-то подобное: Отладка в браузере Chrome

Да, действительно, это потому что в этом скрипте есть ошибка. Но в чем же дело? Давайте посмотрим, какие были значения переменных на момент отладки. Для этого заставим отладчик остановиться при ошибке, нажав два раза на Отладка в браузере Chrome (до фиолетового цвета).

Кстати, чтобы увидеть эту кнопку, нужно быть именно во вкладке Sources, не в Console.

Теперь перезагрузите страницу. Отладчик остановится на строке с ошибкой:

Отладка в браузере Chrome

Можно посмотреть значения переменных. Поставить брейкпойнты раньше по коду и посмотреть, что привело к такой печальной картине.

В данном случае-то все просто: опечатка в имени переменной y вместо x. Этот тип ошибки называетсяReferenceError.

Итого

Отладчик позволяет:

  • Останавливаться на отмеченном месте (breakpoint) или по команде debugger.
  • Выполнять код — по одной строке или до определенного места.
  • Смотреть переменные, выполнять команды в консоли и т.п.

В этой статье кратко описаны возможности отладчика Google Chrome, относящиеся именно к работе с кодом.

Пока что это все, что нам надо, но, конечно, инструменты разработчика умеют много чего еще. В частности, вкладка Elements — позволяет работать со страницей (понадобится позже), Timeline — смотреть, что именно делает браузер и сколько это у него занимает и т.п.

Осваивать можно двумя путями:

  1. Официальная документация (на англ.)
  2. Кликать правой кнопкой и двойным кликом в разных местах и смотреть, что получается.

К сожалению, в одной статье не просто дать все знания про отладка в браузере chrome. Но я - старался. Если ты проявишь интерес к раскрытию подробностей,я обязательно напишу продолжение! Надеюсь, что теперь ты понял что такое отладка в браузере chrome и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)

Из статьи мы узнали кратко, но содержательно про отладка в браузере chrome
создано: 2014-10-07
обновлено: 2024-11-14
699



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)

Термины: Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)