[Javascript-Tips] セミコロンの扱いとコードの改行記述
Javascriptはインタプリタな言語で「セミコロン(;)は事実上書かなくても動作する」というのはプログラマでは周知の事実ですよね。 例えば…
alert("abc") alert("def")
なんて、セミコロン無しに書いても動作する訳です。 なぜかというと、セミコロンが省略された場合には暗黙のセミコロンの挿入が行われるからです。
文法的セミコロンの挿入 閉じ括弧 } やプログラムの終端の前のセミコロンは JavaScript 1.5 、JavaScript 2.0 のいずれでも省略可能である。これに加えて JavaScript 2.0 パーサは if-else 文の else の前と do-while 文の while の前のセミコロンの省略も認めている。 改行におけるセミコロンの挿入 JavaScript プログラムの先頭から n 番目までのトークンは文法的に正しいが、n+1番目のトークンが誤っていて、且つ n 番目のトークンと n+1番目のトークンの間に改行がある場合は、パーサは n 番目のトークンと n+1番目のトークンの間に VirtualSemicolon を挿入してからプログラムをもう1度パースしようとする。
しかし、通常セミコロンは予期せぬ事態を避けるためにも付けるべきです。
なぜならば、パーサにより暗黙的なセミコロンが挿入される事により、予期せぬ動作を起こすことがあるためです。
また、長い文字列を書こうとした場合は、変数に格納する処理を縦長に、もしくは1行で横長に記述しなくてはならないのでしょうか?
そんな事は一切無く、下記コードではそれが実現可能です。
alert("ab\ c"); alert("d\ ef");
改行扱いされたくない箇所に \ を追加しました。 このコードは、改行コードが無視され、実際に動作します。 なので、極論を言えば
alert("あいうえおかきくけこ\ さしすせそたちつてと\ なにぬねのはひふへほ\ まみむめもやゆよ\ らりるれろわをん");
なんてスクリプトを書こうと実行可能ということです。
「Javascript」に関する「本」の商品を自動的に表示しています。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
作成日:2008年06月09日(Mon)