JSHintが次のことについて不平を言う理由を誰かが私に説明できますか、
window.location.href = String1
+ '#'
+ Sting2
+ '='
+ String3;
エラーで、Bad line breaking before '+' error
このエラーはlaxbreak
option で設定できることを理解しています。
このオプションは、コード内の安全でない可能性のある改行に関するほとんどの警告を抑制します。コンマファーストコーディングスタイルに関する警告を抑制しません。これらを抑制するには、laxcommaを使用する必要があります(以下を参照)。
この説明は非常に簡潔で、このように行を分割することが最初に悪いまたは緩いと考えられる理由について興味があります。
ここで聖戦を始めようとはしていないことを覚えておいてください、私はJSHintの人々がなぜこれが悪いと思うのか、それが彼らのリンターに注入しているスタイルの好みであるかどうかについて、客観的な答えを探しています(JSLintは断定されたリンター)、またはこの方法で改行するときに特定のインタープリターに問題が発生する可能性がある場合。
couldが セミコロンの自動挿入 についての仮定に責任を負う可能性があるというステートメントを避けるためのスタイルガイドです。
アイデアは、式がそこで終わるか、次の行に続くかどうかを行の終わりまでに明確にすることです。
新しい行ではなく、改行の前に+を使用すると、Jshintはこれを不良改行としてフラグしません。そのようです:
window.location.href = String1 +
'#' +
Sting2 +
'=' +
String3;
質問に対する直接的な答えではありませんが、ルールを維持したいが警告を修正したいグーグルからこれに出くわした人(私がしたように)には、以下が役立ちます...
Notepad ++を使用する場合(JSLintプラグインなど)、次の検索と置換を使用してこれを修正できます。
(\r\n|\n|\r)( *)\+
+$1$2
(最初と最後のスペースを含む)(Windowsでのみテストされていますが、正規表現はUnixまたはMac OSの行末でも動作するはずです。)
||
の代わりに&&
、==
、!=
、<=
、>=
、または+
に対して同様のことを行うには、この:
(\r\n|\n|\r)( *)(\|\||&&|==|!=|<=|>=)
$3$1 $2
(最初と最後のスペースを含む)