シングルクオートとダブルクオートの違いと使い分け

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は意味が変わるので要注意

見た目は小さい違いですが、
バグの原因になりやすいポイントです。

最初はなんとなくでも大丈夫ですが、
意味を理解して使い分けられると
コードの安定感が一段上がります。