JavaScript | 基礎構文:文字列操作 – エスケープシーケンス

JavaScript JavaScript
スポンサーリンク

初心者向け:エスケープシーケンスの基本

エスケープシーケンスは、文字列の中で「そのまま書けない特殊な文字」を表すための記号です。バックスラッシュ(\)から始まる短いコードで、改行・タブ・引用符などを安全に書けます。


よく使うエスケープシーケンス

  • 改行: \n
"Hello\nWorld"  → 出力:
Hello
World
JavaScript
  • タブ: \t
"A\tB"  → A    B(間にタブ)
JavaScript
  • バックスラッシュ自体: \
"C:\\Users\\Taro" → C:\Users\Taro
JavaScript
  • ダブル/シングルクォート: ” / ‘
"He said: \"Hi\"" → He said: "Hi"
'It\'s fine'      → It's fine
JavaScript
  • ベル音(まれに使用): \b, \f, \r, \v
    • \r: 先頭復帰(コンソールでは挙動が環境依存)
    • これらは古い制御文字で、通常は使わない

文字コードで書く(Unicode / 16進)

  • Unicode(固定4桁): \uXXXX
"\u3042""あ"
"\u{1F600}" → 😀(拡張形式。波括弧で長いコードポイント)
JavaScript
  • 16進(1バイト): \xHH
"\x41""A"
JavaScript
  • 使いどころ
    • 明示的に特定文字を入れたい時
    • 直接打ちにくい文字(絵文字や特殊記号)を扱う時

テンプレートリテラルでの注意点(バッククォート)

  • テンプレートリテラルは改行をそのまま書ける(エスケープ不要)
const s = `行1
行2`;
JavaScript
  • バッククォートを文字列に含めたい場合:
`Use backtick: \`` → 出力: Use backtick: `
JavaScript
  • 式埋め込みの開始記号 ${ を文字列に書く:
`\${notVariable}` → 出力: ${notVariable}
JavaScript

実用例とよくある落とし穴

  • Windowsパスの記述
    • 落とし穴: 「\P」は無効なエスケープ。必ず「\」と2回書く。
"C:\\Program Files\\App"
JavaScript
  • JSON内の引用符
"{\"name\":\"Taro\"}"  // ダブルクォートを \" でエスケープ
JavaScript
  • 文字列中の改行
    • 通常文字列: “Line1\nLine2”
    • テンプレートリテラル: Line1 Line2(こちらが楽)
  • エスケープの見落とし
    • “It’s fine” はシングルクォートの文字列では 'It\'s fine'
    • HTML属性や正規表現では別のエスケープルールがある(場面に応じたエスケープが必要)

覚えておきたいミニリスト

  • 改行: \n
  • タブ: \t
  • バックスラッシュ: \
  • 引用符: ” / ‘ / `
  • Unicode: \uXXXX / \u{…}
  • 16進1バイト: \xHH

ミニ練習

  • 問1: 改行とタブを使って「Name: Taro」「Age: 20」を縦にそろえて表示せよ。
console.log("Name:\tTaro\nAge:\t20");
JavaScript
  • 問2: ダブルクォートで “He said “OK”.” を正しく表示せよ。
console.log("He said \"OK\".");
JavaScript
  • 問3: Windowsのパス C:\data\logs を表示せよ。
console.log("C:\\data\\logs");
JavaScript
  • 問4: Unicodeで「☆」(U+2606)を表示せよ。
console.log("\u2606");
JavaScript

まとめ

  • エスケープシーケンスは「文字列に特殊文字を安全に入れる方法」。
  • 改行やタブ、引用符、バックスラッシュは頻出。
  • テンプレートリテラルなら改行はそのまま書けるが、バッククォートは ` が必要。
  • Unicode/16進エスケープで、直接打ちにくい文字を正確に表せる。

迷ったら「これはそのまま書ける?書けない?」「どの引用符で囲んでいる?」を考え、必要なエスケープを足していけばOKです。

タイトルとURLをコピーしました