No.02 Javascript の基礎
03 分かりやすいスクリプトにするために
 
 こんなことをは元来、書くほどのことでもないのですが、効率の良いプログラムや発展性のあるプログラムは、無論それを考察した上でロジックを組んでいくことは当然行うべきことですが、それと同様に、プログラムそのものを見やすくするという配慮が必要になってきます。
 括弧の数が足りなかったり、計算式の組み込みをミスしたりといった細かいミスの多くは、プログラムソースをあとから見直ししたときに見難いといった事情から発生していることも多く、また、こういった細かいバグは、意外とどの箇所を修正するか分からない場合も多いので、バグを未然に防ぐための手立てを考えなくてはなりません。 その為に重要になるのは、プログラムソースの階層構造化と、コメントアウトの記述になります。

悪例
	
<Script Language = "Javascript">
var count = 0;
function test(){
for (x=0 ; x <100 ; x ++){
for (y=0 ; y< 50 ; y++){
if(x>10 && y>10){
count ++
}}}
test();
document.write(count);
</Script>
 
 さすがにこんな記述をする人は居ないと思いますが、極端な例として考えてください。
 複数のループルーチンと条件分岐を組み込んだシステムを function 化させた例ですが、階層化されていないのでどのルーチンがどのように動いているかを理解するのは非常に難しくなります。 また、このプログラムはそのままソースをコピーしてもエラーが出る( } が足りない )のですが、それがどこの部分なのか、見極めるのは困難になります。
 この程度のプログラムでもそうですから、500行や700行を超える膨大なJavascriptを開発したらもう、目も当てられない状態になってしまいます。
 例えば上記の例であれば、このように記述することで、ソースは格段に見やすくなります。

	
<Script Language = "Javascript">

   var count = 0;
   //カウンターを計算する
   function test(){

      //X側ループ
      for (x=0 ; x <100 ; x ++){

         //Y側ループ
         for (y=0 ; y< 50 ; y++){
            if(x>10 && y>10){
               count ++
            }
         }
      }
   }

   test();
   document.write(count);

</Script>
 
 上記の例は、プログラムに階層構造をもたせ、コメントアウトによる注釈を追加( // ) を追加した点で、最初のソースとは大きく異なります。
 プログラムソースの容量は、上のものに比べて多くはなりますが、アクセス時間にしてみればごく僅かなことですし、さほど気にすることも無いでしょう。

補足:コメントアウトには、「//」の他に、「/* 〜 */」(リテラル) も利用できます。 前者が、スクリプトの後ろに注釈でつけるものであるのに対して、後者は複数行、即ち「/*」で開始し、「*/」で終わるまでの間をコメントアウトするものですが、複数行にまたがる文章を注釈として設けるのはあまりないですし、「//」のほうが分かりやすいですから、あまり用いることは無いでしょう。
 尚、複数行リテラルの中に別の複数行リテラルを組み込みとエラーになります。 つまり /* 〜 */ のコメントアウトの中に「*/」を書いてしまうと、そこがリテラルのの終了部とインタプリタが解釈して、その後ろをコードと誤認識してしまうからですが、こういったエラーを避けるためにも、複数行リテラルは用いないほうがよいでしょう。

ページの最上段へ移動します