JavaScript - エスケープ シーケンスの一覧

JavaScriptに限らず、 プログラミングで文字列を扱う場合に、改行コードやタブ文字を含ませたい場合があります。 その時に必要となってくるのがエスケープシーケンスです。

エスケープシーケンスとは

文字列の中で、改行やタブを表したい場合や、 "や'のような特別な意味を表したい場合、 「\n」、「\t」、「\"」、「\'」というように「\ + 文字」の形式で表します。

この「\ + 文字」のことをエスケープシーケンスといいます。

エスケープシーケンスの一覧

主なエスケープシーケンスの一覧です。

エスケープシーケンス説明備考
\0NULL文字
\bバックスペース
\f改ページ、フォーム フィード空白
\n改行、ラインフィード行終端文字
\r復帰、キャリッジ リターン行終端文字
\tタブ空白
\v垂直タブ空白
\\円記号
\'シングルクォート
\"ダブルクォート
\xXX2桁の16進数XXで表すLatin-1文字
\uXXXX4桁の16進数XXXXで表すUnicode文字
\u{XXXXX}4桁の16進数を超えるUnicode文字、ES2015より対応。

エスケープシーケンスを使ったサンプルコード

「\n」改行(ラインフィード)

改行コードは「\n」で表します。 改行が入るため、実行結果は2行ににわたって表示されます。


// 改行
console.log('hello' + '\n' + 'world');

// 実行結果-----------
hello
world

「'hello' + '\n' + 'world'」という風に文字列を別々にして連結していますが、 別々にせずに「'hello\nworld'」としても同じ結果となります。

両者を比較してみると「'hello\nworld'」よりも 「'hello' + '\n' + 'world'」の方が可読性が高くなります。

上のサンプルコードのようにエスケープシーケンスを別に記述して連結するかどうかは、 状況に応じて判断してください。

「\t」タブ文字

タブ文字は「\t」で表します。

「hello」と「world!」の間にタブ文字をいれます。



// タブ文字
console.log('hello' + '\t' + 'world!'); // hello	world!

// タブ文字
console.log('hello\tworld!'); // hello	world!

1番目も2番目も結果は同じですが、多くの方が1番目の方が見やすいかと思います。

「\'」シングルクォート

文字列全体をシングルクォートで囲っている場合、 シングルクォートは「\'」で表しますが、 文字列全体をダブルクォート(")で囲っている場合は「\'」ではなく「'」で表せます。

次のサンプルは、「hello」をシングルクォートで囲って 「'hello' world!」と出力します。


// 文字列全体をシングルクォートで囲っている場合
console.log('\'hello\' world'); // 'hello' world

// 文字列全体をダブルクォートで囲っている場合
console.log("'hello' world"); // 'hello' world

1番目は文字列全体をシングルクォート(')で囲っています。 そのため、シングルクォート(')を表す場合は「\'」とします。

一方、2番目は文字列全体をダブルクォート(")で囲っています。 そのため、エスケープシーケンスを使う必要はありません。

「\"」ダブルクォート

上のシングルクォートと考え方は同じです。

文字列全体をダブルクォートで囲っている場合、 ダブルクォートは「\"」で表しますが、 文字列全体をシングルクォート(')で囲っている場合は「\"」ではなく「"」で表せます。

次のサンプルは、「hello」をダブルクォートで囲って 「"hello" world!」と出力します。


// 文字列全体をダブルクォートで囲っている場合
console.log("\"hello\" world!");

// 文字列全体をシングルクォートで囲っている場合
console.log('"hello" world!');

1番目は文字列全体をダブルクォート(")で囲っています。 そのため、ダブルクォート(")を表す場合は「\"」とします。

一方、2番目は文字列全体をシングルクォート(')で囲っています。 そのため、エスケープシーケンスを使う必要はありません。