プログラミングで飯を食え。腕をあげたきゃ備忘録!

PHP、JavaScript、HTML5、CSS3などWEB系言語を中心に基本テク、備忘録をまとめます。Android、Iphoneアプリ開発についても!

JavaScriptでヒアドキュメントする方法!大量の文字列を縦に書く!

サクウェブTVはコチラ↓↓↓
サクウェブTV

プログラミング上でメール本文を生成したり、大量のCSSを一気に書いたり、

<!DOCTYPE>からHTMLを生成して一気に

document.write()でページを書き出したりと、時には大量の文字列を書きたい場合があると思います。

そのようなときPHPでは

$str = <<<STR
    今日は
    お昼に
    ラーメンを
    食べました。
    餃子も
    3皿
    食べました。
STR;

というような書き方ができ、非常に便利です。

これをヒアドキュメントと呼びます。

しかし、JavaScriptにはこのような書き方が用意されていません。

ですので、通常

var str = "今日は";
str += "お昼に";
str += "ラーメンを";
str += "食べました。";
str += "餃子も";
str += "3皿";
str += "食べました。";

というように非常に面倒くさい書き方をしているか、一行でザーっと書いているかも知れません。

ただ、横長のソースは読みづらいため1行で書こうとするのはよろしくありません。

そこで、PHPのヒアドキュメント的書き方がやはり必要になります。

では以下のようにしてみましょう。

var str = "
   今日は
   お昼に
   ラーメンを
   食べました。
   餃子も
   3皿
   食べました。
";

はい。これではうんともすんとも動きません(汗)

JavaScriptでは文字列の途中で改行してはいけないからです。

そこで、改行(改行文字)を「\」で全てエスケープしてあげるわけです。

var str = "\
   今日は\
   お昼に\
   ラーメンを\
   食べました。\
   餃子も\
   3皿\
   食べました。\
";

はい。これで動きます。

それぞれの行の最後に改行文字「\n\r」がありますから

それを全て「\」でエスケープして無効化しました。

確かに、行の最後に必ず「\」をつけるのは面倒ですが、慣れれば結構使いやすい方法だと思います。