E4Xを知っておくとよいたった一つ(かどうか知らない)の状況

史上空前のクラムチャウダーを飲んで帰国ブームの間に何か書こうと思ってたのにブームが去ってしまったので、史上空前というほども流行っていないE4Xブームにのってみる。
E4Xという機能を使うと、JavaScript内にリテラルXMLを記述できる。徳丸さんのサンプルがわかりやすい。

var order = <order> 
  <name>Webアプリケーションのセキュリティ完全対策</name> 
  <author>徳丸浩他</author>
  <price>3990</price>
  <ISBN>4822229718</ISBN>
</order>

JSONで書いた例も徳丸さんのサンプルから借りてくる。

var order = { 
  name : "Webアプリケーションのセキュリティ完全対策",
  author : "徳丸浩他",
  price : 3990,
  ISBN : "4822229718"
}

確かに、E4Xで書くよりこっちのほうがわかりやすいし書きやすい。

では、どんなときにE4XリテラルXMLが生きてくるのか。答え「ヒアドキュメントを書くとき」。

var s = <><![CDATA[
E4Xで CDATA を使うと、JavaScript内にヒアドキュメントを記述できるお。
<html>
  <title>
   HTMLタグだって書けちゃうお。
  </title>
  <body>
    JavaScriptのコメント // とか /* */ だって書けちゃう。
    でも、</script> は書けないな。
    *.js 内にだったら書けるかな。
  </body>
</html>
]]></>;
alert( s.toString() );

これは便利。ただ、上の書き方だと前後に無駄な改行がつくのでそれを消すのを忘れずに。

Yosuke the E4X Nite