Czy ktoś może mi wyjaśnić, dlaczego JSHint narzeka na następujące kwestie,
window.location.href = String1
+ '#'
+ Sting2
+ '='
+ String3;
Z błędem Bad line breaking before '+' error
Rozumiem, że ten błąd można skonfigurować za pomocą laxbreak
opcji , która jest opisana jako
Ta opcja pomija większość ostrzeżeń o potencjalnie niebezpiecznych podziałach wierszy w kodzie. Nie pomija ostrzeżeń o stylu kodowania zaczynającym się od przecinka. Aby je stłumić, musisz użyć laxcomma (patrz poniżej).
To wyjaśnienie jest dość zwięzłe i jestem ciekaw, dlaczego łamanie linii w ten sposób jest przede wszystkim uważane za złe lub luźne.
Pamiętaj, że nie próbuję tutaj rozpoczynać świętej wojny, po prostu szukam obiektywnej odpowiedzi na pytanie, dlaczego ludzie z JSHint myślą, że to jest złe, czy to tylko preferencja stylu, którą wstrzykują do swojego lintera (myślałem, że JSLint to uparty linter) lub jeśli jest coś, co może się nie udać niektórym tłumaczom podczas łamania linii w ten sposób.
źródło
Odpowiedzi:
Jest to przewodnik po stylu, aby uniknąć stwierdzeń, które mogą być podatne na założenia dotyczące automatycznego wstawiania średników .
Chodzi o to, aby na końcu linii było jasne, czy wyrażenie się tam kończy, czy może być kontynuowane w następnej linii.
źródło
+
. łatwiejsze dla oczu (i mniej podatne na błędy) jest podążanie za pojedynczą kolumną po lewej stronie niż przeskakiwanie na koniec każdej linii, aby zobaczyć, czy zostanie dodany do następnej linii. nawet gramatyka jest mniej niezgrabna: „Linia 118 dołącza 117” w porównaniu z „Linia 117 zostanie dodana do linii 118”.Jshint nie oznaczy tego jako złego końca linii, jeśli użyjesz + przed podziałem linii, w przeciwieństwie do w nowej linii. Tak jak to:
źródło
Nie jest to bezpośrednia odpowiedź na to pytanie, ale dla każdego, kto natknie się na to z Google (tak jak ja), który chce zachować regułę, ale naprawić ostrzeżenia, przydatne mogą być poniższe wskazówki ...
Podczas korzystania z Notepad ++ (np. Z wtyczką JSLint) można to naprawić za pomocą następującego wyszukiwania i zamiany:
(\r\n|\n|\r)( *)\+
+$1$2
(Testowane tylko w systemie Windows, ale wyrażenie regularne powinno również działać z zakończeniami linii w systemie Unix lub Mac OS).
Zrobić coś podobnego do
||
,&&
,==
,!=
,<=
lub>=
zamiast+
, użyj tego:(\r\n|\n|\r)( *)(\|\||&&|==|!=|<=|>=)
$3$1 $2
źródło