初心者向け:エスケープシーケンスの基本
エスケープシーケンスは、文字列の中で「そのまま書けない特殊な文字」を表すための記号です。バックスラッシュ(\)から始まる短いコードで、改行・タブ・引用符などを安全に書けます。
よく使うエスケープシーケンス
- 改行: \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属性や正規表現では別のエスケープルールがある(場面に応じたエスケープが必要)
- “It’s fine” はシングルクォートの文字列では
覚えておきたいミニリスト
- 改行: \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です。
