SyntaxError: unterminated string literal

この記事は編集レビューを必要としています。ぜひご協力ください

メッセージ

SyntaxError: unterminated string literal

エラータイプ

SyntaxError

何がうまくいかなかったのか?

どこかに終端されていない String があります。文字列リテラルは、シングル(')かダブル(")のクオートで囲む必要があります。JavaScript は、シングルクオート文字列とダブルクオート文字列を区別しません。エスケープシーケンス はシングルクオートとダブルクオート、どちらの文字列でも動作します。このエラーを修正するためには、次の点をチェックしてください:

  • 文字列リテラルのために、クオート(シングルかダブル)の開始と終了を行っている。
  • 文字列リテラルを正しくエスケープしている。
  • 文字列リテラルが正しく複数行で動作している。

複数行

JavaScript では、次のように複数行にまたがる文字列を分割できません:

var longString = "This is a very long string which needs 
                  to wrap across multiple lines because 
                  otherwise my code is unreadable.";
// SyntaxError: unterminated string literal

替わりに、+ 演算子 かバックスラッシュ、template literal を使用します。+ 演算子だと、次のようになります:

var longString = "This is a very long string which needs " +
                 "to wrap across multiple lines because " +
                 "otherwise my code is unreadable.";

または、文字列が次のように続くことを示すために、各行の終わりにバックスラッシュ文字("\")を使用することもできます。バックスラッシュの後に、(改行を除いて)スペースや文字、インデントを入れないようにしてください。そうしないと動作しません。バックスラッシュの場合、次のようになります:

var longString = "This is a very long string which needs \
to wrap across multiple lines because \
otherwise my code is unreadable.";

ECMAScript 2015 環境でサポートされている template literal を使っても改行可能です。

var longString = `This is a very long string which needs 
                  to wrap across multiple lines because
                  otherwise my code is unreadable.`;

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,