Отладка JavaScript [дубликат]

9
задан Rachel 18 April 2010 в 02:11
поделиться

7 ответов

Недавно я переключился с Firebug на Google Chrome, так как в нем есть довольно мощные встроенные инструменты отладки (Ctrl + Shift + J, чтобы получить Инструменты разработчика окно открыто), включая точки останова.

Я также очень эффективно использовал ведение журнала / трассировку. Некоторые примеры:

  • Когда код выполняется без синтаксических ошибок, но не делает того, что я ожидал, я могу записывать сообщения (например, «здесь1», «здесь2» и т. Д.) В консоль, чтобы увидеть, что происходит (также могу выполняется путем пошагового выполнения отладчика, но это может быть сложнее, если ваша логика находится в каком-то сумасшедшем цикле или что-то, что требует времени, чтобы пройти через).
  • Когда блокирующий характер окна предупреждения или точки останова нарушает отлаживаемый код. Это часто случается, когда у меня установлено несколько интервалов таймера. Блоки предупреждений также болезненно использовать в длинных циклах (и точки останова тоже могут быть).
  • Когда я хочу увидеть, какое значение имеет определенная переменная в одном месте кода. Если это одноразовая вещь, то точки останова отлично подходят для этого (даже лучше, потому что я могу проверить значение любой переменной в этом контексте), но если этот код выполняется часто, и меня интересует только, скажем, третий когда он выполняется после того, как я нажимаю на определенную ссылку, тогда регистрация очень полезна. Я могу игнорировать вывод, который мне не нужен (или убрать его, если он мешает), и сосредоточиться только на том выводе, который мне интересен.
8
ответ дан 4 December 2019 в 21:09
поделиться

Субъективно, потому что то, что лучше для одного, не лучшее для других.

Лично я считаю, что самый простой / самый быстрый способ - использовать предупреждения или писать в небольшую область вывода отладки (т.е. я не беспокоюсь о firebug или какой-либо системе с точками останова и т. Д., Из-за характера того, как JavaScript является сгенерировано).

Но я, вероятно, считаю этот способ хорошим только потому, что занимаюсь им около 10 лет, так что YMMV.

0
ответ дан 4 December 2019 в 21:09
поделиться

Я в основном разрабатываю для FireFox, поэтому я склонен использовать инструменты на этой платформе.

Мне очень нравится Venkman JavaScript Debugger, но он несовместим с новыми версиями FireFox AFAIK.

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

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

0
ответ дан 4 December 2019 в 21:09
поделиться

Мне очень нравится интеллектуальный анализ и отладка JavaScript в Visual Studio. Приятно иметь возможность отлаживать шаг от события javascript до XMLHttpRequest прямо в моем обработчике .net.

Еще один действительно приятный аспект использования VWD - это визуализация отладки. Вы можете навести указатель мыши на любой объект / переменную и вызвать визуализатор, который позволит вам углубиться в объект и изучить значения.

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

Visual Web Developer Express бесплатен и предлагает все это.

0
ответ дан 4 December 2019 в 21:09
поделиться

Я редко использую отладчик и предпочитаю ведение журнала, для чего использую свой собственный log4javascript . Он работает согласованно во всех основных браузерах, включая IE 6 (и фактически IE 5 и 5.5), и по умолчанию отображает сообщения журнала в отдельном окне консоли, что позволяет фильтровать сообщения журнала по серьезности, искать сообщения журнала (необязательно с помощью регулярное выражение) и многое другое. Он также может отправлять сообщения журнала на сервер с помощью Ajax.

Пример 1: Hello world

var log = log4javascript.getDefaultLogger();
log.info("Hello world");

отображает

19:52:03 INFO  - Hello world

Пример 2: Регистрация ошибки с сообщением

try {
   throw new Error("Faking something going wrong!");
} catch (e) {
    log.error("An error occurred", e);
}

отображает

19:52:32 ERROR - An error occurred
Exception: Faking something going wrong! on line number 80 in file basic.html

Пример 3: Регистрация нескольких сообщений одним вызовом регистрации

var a = "Hello";
var b = 3;
log.debug(a, b);

отображает

19:53:05 DEBUG  - Hello 3

Пример 4 : Запись объекта

var obj = new Object();
obj.name = "Octopus";
obj.tentacles = 8;
log.info(obj);

отображает

19:53:17 INFO  - {
    name: Octopus,
    tentacles: 8
}
1
ответ дан 4 December 2019 в 21:09
поделиться

Один из моих коллег (который много занимается разработкой JS для нескольких браузеров) считает, что отладчик в IE8 очень хорош. Кроме того, последняя версия Firebug для Firefox 3.6 является значительным улучшением по сравнению с более ранними версиями.

РЕДАКТИРОВАТЬ Немного не по теме, но одна вещь, которая раздражала меня в Firebug, - это фактическое отсутствие письменной документации. Мне очень жаль, но видео-презентации просто не режут, насколько я понимаю.

0
ответ дан 4 December 2019 в 21:09
поделиться

Современные браузеры включают встроенные средства отладки. В IE нажмите F12 (Инструменты> Инструменты разработчика), перейдите на вкладку Сценарий и нажмите Начать отладку. Он сломается при ошибке, и вы можете установить точки останова. Я обнаружил, что инструменты разработчика IE8 чрезвычайно полезны.

В Chrome нажмите Ctrl + Shift + J (Страница> Разработчик> Консоль JS) и нажмите кнопку со знаком остановки паузы («пауза при исключениях»). Вы также можете установить точки останова.

1
ответ дан 4 December 2019 в 21:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: