JavaScriptの構文

今回はJavaScriptの構文の話をする。


JavaScriptにはif-else文、switch-case文、for文、while文、do-while文と、C系列の言語と同等の制御構文を備えている。さらに、Javaでの拡張for文、C#でのforeach-in文であるfor-in文や、ラベルつきのbreak文、ラベルつきのcontinue文、例外処理機構(try-catch-finally)を使うこともできる。JavaScriptのコメントは行末コメントとして// ...、範囲コメントとして/* ... */が使用できる。
switch文はfall throughとなっており、C#プログラマは注意が必要である。for-in文は、配列のすべての要素、またはオブジェクトのすべてのメソッドとプロパティを順に取得できる。形式はJavaの拡張for文の:(コロン)をinに、またはC#のforeach-in文のforeachforにした形式となる。


ほかにC/C++やJava、C#等の言語にない構文として、with文がある*1。これは頻繁に使用するオブジェクトのメソッドやプロパティに簡単にアクセスできるようにする。たとえばdocument.writeは引数をそのまま出力できる関数で、よく使用する。

document.write("hoge");
document.write("piyo");

実行してみる
これをwithを使用して書き直すと次のようになる。

with (document) {
    write("hoge");
    write("piyo");
}

実行してみる
このwith文の応用するとブロックスコープが実現できる

*1:Javaのimportstatic import、C++、C#のusingがこれに近いと言えなくもない?