How-To

JavaScript-Fehler beheben: Den Bugs auf der Spur

(Grafik: Flaticon / Freepic)

Die Fehlersuche in Javascript kann selbst für erfahrene Entwickler aufwändig sein. Ein professioneller Workflow verspricht Abhilfe – so geht’s.

Am Ende einer langen Suche nach einem Fehler, der im Internet Explorer aufgetreten ist, stellt sich ein fehlendes oder falsch platziertes Semikolon als der Übeltäter heraus: Das ist Entwickleralltag. Dabei sollten sich Entwickler heute nicht länger mit Syntaxfehlern herumschlagen, weil statische Code-Analysen über JSHint, JSCS oder ESLint entsprechende Hilfe leisten. Neben einer automatischen Fehler- und potenziellen Problemsuche können diese auch die im Team oder Unternehmen festgelegten JavaScript-Konventionen überprüfen.

Die Demo zum Artikel

Ergänzend zum Artikel gibt es ein Github Repository, indem eine Vielzahl der beschriebenen Grunt Tasks bereits eingerichtet sind [1]. In dieser Demo führen folgende Befehle statische Code-Analysen im Terminal aus:

Statische Code-Analysen

grunt eslint
grunt jscs
grunt jshint

Listing 1

Wer bereits JSCS im Einsatz hat, sollte perspektivisch zu ESLint wechseln, da sich beide Teams dazu entschlossen haben, künftig zusammenzuarbeiten und die Entwicklung von JSCS zugunsten von ESLint einzustellen.

Debugging im Browser

Die gängigen Browser haben mächtige Werkzeuge, um JavaScript effektiv zu debuggen. Die Developer-Tools von Chrome und Firefox liefern sich dabei seit Jahren ein Kopf-an-Kopf-Rennen. Einen klaren Gewinner gibt es nicht und so entscheidet am Ende die persönliche Präferenz. Ein grundlegendes Werkzeug ist beim Debugging im Browser noch immer die JavaScript-Konsole. Hier loggt der Browser die zuvor im Quellcode definierten Ausgaben.

Debugging in der Browser Konsole

console.log('test');

Listing 2

Die gängigen Browser orientieren sich an der „Console API“, die unter anderem umfangreiches Profiling, die Ausgabe des aktuellen Stack-Trace und sogar individuelle Zeitmessungen erlaubt.

Funktionen der „Console API“

console.profile('test');
console.profileEnd();

console.trace();

console.time('test');
console.timeEnd('test');

Listing 3

Wirklich spannend wird es jedoch erst mit der „Command Line API“, die das Monitoring von Funktionen und Events erleichtert.

Funktionen und Events monitoren

monitor(function);
monitorEvents(document, 'click');
getEventListeners(document);

Listing 4

Die JavaScript-Konsole erlaubt auch die Eingabe und somit das Ausführen von Quellcode im Browser – also ohne den Umweg über die IDE.

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

2 Kommentare
Hans
Hans

Langer Artikel und trotzdem nicht schön zu lesen. Alle Themen werden nur angerissen, meist nur mit ein oder zwei Sätze. Leider fehlen weiterführende Links zu den einzelnen Themen.
Spannendes Thema und trotzdem habe ich nichts gelernt. Sehr Schade.

Antworten
Henry Ruhs

Danke für das Feedback.

Im Wesentlichen hast du es auf den Punkt gebracht und ich kann deine Kritik absolut nachvollziehen. Mir ist die Quadratur des Kreises offenbar nicht gelungen, denn ich wollte auf keine Themen verzichten, obwohl mir im Print-Magazin nur drei Seiten zur Verfügung standen. Am Ende wurde auch noch sehr viel gekürzt und von der Redaktion umgeschrieben :-)

Um das zu kompensieren, hatte ich mir die Mühe gemacht dem Leser ein Demo auf GitHub an die Hand zu geben, wo man Schritt für Schritt nachvollziehen kann.

https://github.com/redaxmedia/javascript-testing-stack

Die weiterführenden Links werde ich an die Redaktion übermitteln.

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.