Quelqu'un peut-il m'expliquer pourquoi JSHint se plaint de ce qui suit,
window.location.href = String1
+ '#'
+ Sting2
+ '='
+ String3;
Avec l'erreur, Bad line breaking before '+' error
Je comprends que cette erreur peut être configurée avec l' laxbreak
option , qui est décrite comme
Cette option supprime la plupart des avertissements concernant les sauts de ligne potentiellement dangereux dans votre code. Il ne supprime pas les avertissements concernant le style de codage par virgule. Pour supprimer ceux-ci, vous devez utiliser laxcomma (voir ci-dessous).
Cette explication est assez laconique et je suis curieux de savoir pourquoi briser les lignes de cette façon est considéré comme mauvais ou laxiste en premier lieu.
Gardez à l'esprit que je n'essaye pas de lancer une guerre sainte ici, je cherche juste une réponse objective sur les raisons pour lesquelles les gens de JSHint pensent que c'est mauvais, que ce soit juste une préférence de style qu'ils injectent dans leur linter (je pensais que JSLint était le linter opiniâtre), ou s'il y a quelque chose qui peut mal tourner sur certains interprètes lors de la rupture de ligne de cette façon.
la source
Réponses:
C'est un guide de style pour éviter les instructions qui pourraient être sujettes à des hypothèses sur l'insertion automatique de points-virgules .
L'idée est que vous indiquez clairement à la fin d'une ligne si l'expression se termine là ou peut être poursuivie sur la ligne suivante.
la source
+
. il est plus facile pour les yeux (et moins sujet aux erreurs) de suivre une seule colonne à gauche que de sauter à l'extrémité de chaque ligne pour voir si elle va être ajoutée par la ligne suivante. même la grammaire est moins maladroite: "La ligne 118 ajoute 117" contre "La ligne 117 va être ajoutée par la ligne 118."Jshint ne marquera pas cela comme un mauvais saut de ligne si vous utilisez le + avant le saut de ligne plutôt que dans la nouvelle ligne. Ainsi:
la source
Ce n'est pas une réponse directe à la question, mais pour quiconque rencontre cela de Google (comme je l'ai fait) qui souhaite garder la règle mais corriger les avertissements, ce qui suit peut être utile ...
Lorsque vous utilisez Notepad ++ (par exemple avec le plugin JSLint), cela peut être corrigé en utilisant la recherche et le remplacement suivants:
(\r\n|\n|\r)( *)\+
+$1$2
(Uniquement testé sur Windows, mais l'expression régulière devrait également fonctionner avec les fins de ligne Unix ou Mac OS.)
Pour faire une chose semblable pour
||
,&&
,==
,!=
,<=
ou au>=
lieu de+
, utilisez ceci:(\r\n|\n|\r)( *)(\|\||&&|==|!=|<=|>=)
$3$1 $2
la source