Popraw błędy w kodzie.
Ponumerowane komunikaty, pojawiają się po wczytaniu strony i po zmianie kodu (z opóźnieniem 3 sekund). Identyfikator błędu lub ostrzeżenia, widoczny jest po najechaniu kursorem na etykietę kategorii błędu. Po etykiecie, widoczna jest przetłumaczona informacja o prawdopodobnej przyczynie problemu. Następnie prezentowana jest linia kodu do poprawy. W kodzie nad danym wierszem i kolumną pojawia się liczba oznaczająca błąd.- (1)
- Ostrzeżenie: Brakujący średnik na końcu linii. (popraw: var c = c1.getContext("2d") ) (2)
- Błąd: Brakujący średnik pomiędzy instrukcjami. (popraw: c.fillStyle="red" c.fillRect(10, 10, 200, 100); )
Błędy i ostrzeżenia
W momencie wystąpienia błędu kod nie jest interpretowany (w niektórych przypadkach całkowicie np. SyntaxError, a w niektórych od miejsca jego wystąpienia np. ReferenceError - skrypt JSHint klasyfikuje je jako ostrzeżenia).Niektóre ostrzeżenia wynikają z dobrych praktyk (subiektywny dobór autorów skryptu), pozostałe mogą wynikać z niegroźnych dla kodu niepoprawnych zapisów.
Podział na błędy i ostrzeżenia jest problematyczny ponieważ w niektórych sytuacjach ostrzeżenie staje się błędem.
Błędy i ostrzeżenia są wykrywane w zależności od konfiguracji skryptu (metoda JSHINT()). Dodatkowo można zdefiniować wyjątki (zmienna predefForJSHint).
Wykaz wybranych, przetłumaczonych komunikatów
Błędy:Missing semicolon - Brakujący średnik pomiędzy instrukcjami. ( ; )
Unclosed comment - Niezamknięty komentarz. ( /* )
Unbegun comment - Nieotwarty komentarz. ( */ )
Unexpected {a} - Niespodziewany znak {a}. (np. \ )
Missing ':' on a case clause - Brakujący ':' w klauzuli case.
Missing '}' to match '{' from line {a} - Brakujący '}' do '{' w linii {a}.
Missing ']' to match '[' from line {a} - Brakujący ']' do '[' w linii {a}.
Illegal comma - Nielegalny przecinek. ( , )
Unclosed string - Niezamknięty ciąg. ( " lub ' )
Expected an assignment or function call and instead saw an expression. - Literówka. (przeniesiono z ostrzeżeń, np. nazwa identyfikatora)
Ostrzeżenia
wynikające z dobrych praktyk:
Missing semicolon - Brakujący średnik na końcu linii. ( ; )
{a} is not defined. - Niepoprawna deklaracja zmiennej {a} (np. brak instrukcji var).
Expected {a} and instead saw {b} - Oczekiwano {a} zamiast tego jest {b} (np. brak bloku {} w for, if)
inne:
Unnecessary semicolon - Niepotrzebny średnik. ( ; )
Źródła:
https://github.com/jshint/jshint
http://jshint.com/