web-dev-qa-db-ja.com

JSLintが単一引用符ではなく二重引用符を使用することを求めているのはなぜですか? 「」が必要ですが、代わりに「」が表示されました

最近、JSLintが次の警告を出すのを見始めました。

JSLint:「」が必要ですが、代わりに「」が表示されました。

つまり、一重引用符の代わりに二重引用符を使用したいと考えています。 JSLintがそのことを警告しているのはなぜですか? JavaScriptで一重引用符と二重引用符を多かれ少なかれ交換できるのではなく、プログラマーの好みのみに従いますか?

31
Thunderforge

JSLintの 2016-02-07バージョン は、単一引用符よりも二重引用符を優先するように変更されました。 Douglas Crockford 、JSLintの開発者であり、JavaScriptとJSONに影響力のある開発者 この根拠を提供

私が最初にJavaScriptに出会ったとき、2種類の引用符があることに驚き[sic]、私はそれを理解しようとしました。内部テキストにはシングル、外部にはダブルを使用しました。

しかし、最終的に私は、区別が1つだけ必要なときに2つあることから生じる混乱と混乱の価値がないことに気付きました。それはJSONが使用するものであり、アポストロフィのオーバーロードによって引き起こされるエラーを回避するため、私はdoubleを使用することにしました。私はそれに噛まれました。

一般的に、言語をより小さく、より良くする方法を探しています。引用は、nullおよびundefinedと同じクラスに分類されます。本当に両方は必要ありません。

私は自分のコードのいくつかでそれを試しました、そしてそれは改善だと思います。最終的に、option.singleをJSLintに追加することができます。

これは起こりました:option.singleはJSLintの 2016-06-09バージョン に追加されたため、オプションで単一引用符を無視するようにJSLintに指示できます。

Crockfordは 後の説明 で、シングルクォートよりもダブルクォートを使用することの根拠をより簡潔に繰り返しました。

私は人々が2種類の引用符を管理するのにいくつかの困難を抱えていることに気づきました。 2番目のセットは完全に不要であり、2番目のセット[一重引用符]は問題や混乱を招く可能性があるため、二重引用符のみを使用することをお勧めします。

31
Thunderforge

これは非常に独断的なツールからのスパム警告であり、正当な理由はありません。

古いlintツール(JSLintおよびJSHint)は ESLint に完全に置き換えられました。これにより、より多くのルールがサポートされ、実際に必要なオプションを構成できます。具体的には quotes rule を使用すると、単一引用符、二重引用符を選択したり、引用を完全に無視したりできます。

11
ssube