■コーディングルール・規約
* なんだか色々ある模様。。。https://developer.mozilla.org/ja/JavaScript_style_guide
http://cou929.nu/data/google_javascript_style_guide/
* でも、JSHintってツールもあるらしいので、利用するのもありじゃないか。。。http://d.hatena.ne.jp/nagayoru/20110227/1298800749
http://qiita.com/items/92d9f8f533f2d0b3e055
* 個人的に以下のなんかいいかも。https://sites.google.com/a/cse.kyoto-su.ac.jp/cac-wiki/reference/javascript/00#TOC-var-
■バグを少なくするために
変数宣言の「var」を省略しない
理由
* varで宣言しなかった変数は全てグローバル変数と見なされてしまい、意図しない動作になる可能性があるため。
{}を省略しない
理由
* 意図しない動作になる可能性があるため。 【例】 if (x === 1) if (y === 2) window.alert("x = 1、y = 2の時に実行"); else // 直近のifに対応するため、if (y === 2)に対応してしまう window.alert("y = 2ではないって時に実行"); //
比較演算子「==」を使わず「===」を使う
理由
* 「==」はあいまいであるため、意図しない動作になる可能性があるため。
■高速化のためのルール
例外処理はなるべく使用しない
理由
* ただでさえ、ブラウザ上で実行されることからコストが掛かるJavaScriptの処理が、Try-Catchはより実行コストが掛かるため
JavaScriptはBody部の最末尾に書くようにする
* 書き方になんとなく抵抗があるが、理由をみて、納得。 (ただ、シビアな環境じゃなければ無理して導入することもないかも)
理由
* 一般的なブラウザでは、スクリプトの読み込みが完了するまでレンダリングを行わない。その結果、ダウンロードなどに時間が掛かるスクリプトをページの先頭に読み込ませても意味がなく、描画の遅れになるため。
修正前
<html> <head> 【head部の内容】 <script type="text/javascript" src="test1.js"></script> <script type="text/javascript" src="test2.js"></script> </head> <body> 【body部の内容】 </body> </html>
修正後
<html> <head> 【head部の内容】 </head> <body> 【body部の内容】 <script type="text/javascript" src="test1.js"></script> <script type="text/javascript" src="test2.js"></script> </body> </html>
コメントや空白行などを削除する
コードを圧縮(コメントや空白行などを削除する)し、ファイルを軽くするといい。 本番環境に上げる時に圧縮して、開発時は改行がして見やすくするといいと思う。
理由
* コメントや空白行/改行などを削除することにより、ダウンロード時間が短縮できる * 複数のjsファイルにまとめれば、HTTPリクエストの回数を抑えられる
方法
* YUI Compressor Onlineなどのツールを使って圧縮する。使い方は以下を参照。http://gigazine.net/news/20080113_yui_compressor_online/