Я хочу змусити налагоджувач Chrome перерватися на рядок за допомогою коду , або ж використовувати якийсь тег коментаря, наприклад щось подібне console.break()
.
Я хочу змусити налагоджувач Chrome перерватися на рядок за допомогою коду , або ж використовувати якийсь тег коментаря, наприклад щось подібне console.break()
.
Відповіді:
Ви можете використовувати debugger;
у своєму коді. Якщо консоль розробника відкрита, виконання буде перервано. Він працює і в firebug.
setTimeout(function(){debugger;}, 3000);
debugger;
підтримується у всіх основних браузерах. Для отримання додаткової інформації: w3schools.com/jsref/jsref_debugger.asp
Налаштуйте слухач натискань на кнопку та зателефонуйте до debugger;
Приклад
$("#myBtn").click(function() {
debugger;
});
Демо
Ресурси налагодження в JavaScript
Ви також можете використовувати debug(function)
, щоб перерватися при function
виклику.
Як вже говорили інші, debugger;
це шлях. Я написав невеликий сценарій, який ви можете використовувати з командного рядка в браузері для встановлення та видалення точки перерви безпосередньо перед викликом функції:
http://andrijac.github.io/blog/2014/01/31/javascript-breakpoint/
На вкладці "Сценарії" перейдіть туди, де знаходиться ваш код. Ліворуч від номера рядка натисніть. Це встановить точку перерви.
Знімок екрана:
Тоді ви зможете відслідковувати свої точки прориву на правій вкладці (як показано на скріншоті).
debugger
є зарезервованим ключовим словом від EcmaScript і надає додаткову семантику з ES5
Як результат, його можна використовувати не тільки в Chrome, але і Firefox та Node.js vianode debug myscript.js
.
Синтаксис
DebuggerStatement : debugger ;
Семантика
Оцінка виробництва DebuggerStatement може дозволити реалізації впровадити точку розриву при запуску під налагоджувачем. Якщо налагоджувач відсутній або активний, це твердження не має спостережуваного ефекту.
Виробництво DebuggerStatement: налагоджувач; оцінюється наступним чином:
- Якщо доступна та увімкнена програма налагодження, визначена реалізацією, то
- Виконайте налагоджувальну дію налагодження.
- Нехай результат - значення, визначене виконанням.
- Інше
- Нехай результат буде (нормальний, порожній, порожній).
- Повернення результату.
У ES6 немає змін.
Це можливо, і є багато причин, з яких ви можете це зробити. Наприклад, налагодження нескінченного циклу JavaScript біля початку завантаження сторінки, що перешкоджає правильному завантаженню набору інструментів для розробників хрому (або firebug).
Дивіться розділ 2 від
http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/
або просто додайте рядок, що містить слово налагоджувач, до свого коду в необхідній тестовій точці.
Точка зламу: -
Точка розриву припинить виконання, і дозволить вивчити значення JavaScript.
Вивчивши значення, ви можете відновити виконання коду (як правило, за допомогою кнопки відтворення).
Налагоджувач: -
Налагоджувач; зупиняє виконання JavaScript і викликає функцію налагодження.
Оператор налагодження призупиняє виконання, але він не закриває жодних файлів і не очищає змінних.
Example:-
function checkBuggyStuff() {
debugger; // do buggy stuff to examine.
};
Ви також можете встановити debug(functionName)
функції налагодження.
https://developers.google.com/web/tools/chrome-devtools/javascript/breakpoints#function
Існує багато способів налагодження JavaScript-коду. Наступні два підходи широко використовуються для налагодження JavaScript за допомогою коду
Використовується console.log()
для друку значень на консолі браузера. (Це допоможе вам зрозуміти значення в певних точках вашого коду)
Ключове слово налагодження. Додайте debugger;
до місць, у яких ви хочете налагоджувати, та відкрийте консоль розробника браузера та перейдіть на вкладку джерел.
Більше інструментів та способів налагодження JavaScript-коду наведено у цьому посиланні від W3School .
Я б не рекомендував, debugger;
якщо ви просто хочете вбити та зупинити код javascript, оскільки debugger;
він просто тимчасово заморозить ваш код JavaScript і не зупинить його назавжди.
Якщо ви хочете правильно вбити та зупинити код JavaScript у вашій команді, використовуйте наступне:
throw new Error("This error message appears because I placed it");
debugger;
або просто використовуєте звичайні точки перерви на панелі інструментів розробника?