シングルクオートとダブルクオートの違いと使い分け
2026.3.18
コーディングをしていると、必ず出てくるのが
'(シングルクオート)"(ダブルクオート)
です。
見た目は似ていますが、
言語によって意味や使い方が変わります。
今回は、
「結局どう使い分ければいいの?」
というところを整理していきます。
そもそもクオートって何?
クオートは、
文字列(テキスト)を囲むための記号
です。
例えば、
const name = "nanofun";この "nanofun" の部分が文字列です。
シングルでも書けます。
const name = 'nanofun';ここまでは、ほぼ同じ意味です。
JavaScriptでの違い
JavaScriptでは、基本的に
- シングル
' - ダブル
"
どちらでも文字列として使えます。
ただし、違いが出るのは
中にクオートを含める場合です。
ダブルの中にシングル
const text = "It's OK";シングルの中にダブル
const text = 'He said "hello"';同じクオートを使うとエラーになるので、
const text = 'He said "hello"';この場合はエスケープが必要です。
const text = 'It\'s OK';テンプレートリテラル(おまけ)
JavaScriptではもう一つ、
`バッククオート`もあります。
これを使うと、
const name = "nanofun";
const text = `Hello ${name}`;のように変数を埋め込めます。
実務ではこれが一番使うことも多いです。
HTMLでの使い方
HTMLでは主に、属性値に使います。
<a href="https://example.com">このように、
ダブルクオートが一般的です。
シングルでも動きます。
<a href='https://example.com'>ただし、
- コーディング規約
- フォーマッター(Prettierなど)
の影響で、
ダブルクオートに統一されることが多いです。
PHPでの違い(重要)
PHPでは、意味が変わります。
ダブルクオート
変数が展開されます。
$name = "nanofun";
echo "Hello $name";
//出力
Hello nanofunシングルクオート
変数は展開されません。
$name = "nanofun";
echo 'Hello $name';
//出力
Hello $nameつまり、
- ダブル → 動的
- シングル → ただの文字列
という違いがあります。
じゃあ結局どう使い分ける?
結論はシンプルです。
JavaScript
- チームルールに従う(Prettierなど)
- 迷ったらどちらでもOK
- テンプレートリテラルは積極的に使う
HTML
- 基本はダブルクオートで統一
PHP
- 変数を使うならダブル
- 使わないならシングル(軽い&安全)
よくあるミス
初心者の頃にやりがちなのがこれです。
const text = 'It's good';→ エラー
または、
echo 'Hello $name';→ 変数が展開されない
どちらも
「クオートの意味を理解していない」
ことで起きるミスです。
エラーが起きたり上手く表示されないという場合
まずはここを疑ってみるのもいいかもですね。
ただ最近はAIでパパッと原因を特定できますけど…
まとめ
- クオートは文字列を囲むための記号
- JavaScriptでは基本どちらでもOK
- HTMLはダブルが主流
- PHPは意味が変わるので要注意
見た目は小さい違いですが、
バグの原因になりやすいポイントです。
最初はなんとなくでも大丈夫ですが、
意味を理解して使い分けられると
コードの安定感が一段上がります。