質問: * htmlタグの属性値 * CSSのプロパティ(urlなど) * JavaScript の文字列リテラル これらで使用する引用符はシングルクォート、ダブルクォートのどちらも使用できますが、メンテナンス性を考慮してスタイルを統一したいです。 また、 * htmlタグのイベント属性(onlickなど)に直接JavaScriptを記述する場合 * JavaScriptで属性値付きのhtmlタグを編集する場合 のように引用符が入れ子になる場合についても書き方を統一したい。 標準的なルール、合理性のある使い分けのガイドラインがあれば教えてください。
回答: 知っているスタイルガイドをいくつか見てみましたが、これという理由はなさそうです。ありていですが、結論としては、「**どっちでもいいけど、どっちかに偏らせろ**」というところ。シングル/ダブルクォートの違いを考える上での小さな要素は、以下の4つぐらい。 * 英文が多い場合は シングルクォートをエスケープしないためにダブルクォートがよい * JSON データの文字列値は、ダブルクォートで囲わなければならないので、それを囲むのはシングルクォートの方が良い * シングルクォート入力は1つのキー押下ですむ(非日本語キーレイアウト) * HTML で出力するクォートは、プロジェクトのガイドラインにあわせたい どっちが良いかよりも、どちらに傾けるかの方が重要でしょう。 以下、いくつかの Javascipt スタイルガイドからの引用をします。 ### Mozilla だと: > > Double-quoted strings (e.g. "foo") are preferred to single-quoted > strings (e.g. 'foo') in JavaScript, except to avoid escaping of > embedded double quotes or when assigning inline event handlers. > > > 「基本はダブルクォート。エスケープが少ないように切り替えて使え」と。 ### Google だと: > > Prefer ' over " > > > For consistency single-quotes (') are preferred to double-quotes ("). > This is helpful when creating strings that include HTML: > > > `var msg = 'This is some HTML';` > > > 「統一性のためにシングルクォートの方を優先する。文字列内にHTMLが含まれるなら便利」と。へぇ、サンプルコードにも HTML が含まれていますね。(HTML の属性はダブルクォート優先だからです) ### jQuery だと: > > jQuery uses double quotes. > > > var double = "I am wrapped in double quotes"; Strings that require > inner quoting must use double outside and single inside. > > > `var html = "";` > > > 「jQuery ではダブルクォートを使う。文字列内で囲う場合はシングルクォートを使えよ」で、理由はなし。