JavaScriptの良い書き方とは

『JavaScript:The Good Parts 「良いパーツ」によるベストプラクティス』を読んだので覚書。内容はJavaScriptのバグの出にくい書き方をまとめた本。どちらかと言えば初心者向けの本で、こう書いたほうがいいですよーって感じのことを書いてる。けど、書き方が難しい。。。Good Partsの本と書いてあるけど、付録に記載のある「ひどいパーツ」「悪いパーツ」を見たほうが勉強になると思う。JavaScriptに特化していて、やらないほうがいいってことを書きだしてみる。

グローバル変数は使うな!

JavaScriptだとブロックスコープがないので、気をつけないとグローバル変数になってしまう。うまく関数スコープを使用してグローバル領域を汚さないようにプログラムを書きましょう。

(function(){
    // こんな感じで即時実行関数で括ってしまえば
    // グローバル領域を汚さない
    var hoge, hogehoge;
})()

==, != は使うな!

==, != の判定は予想外の行動を起こすことがある。==, != は、大抵の場合 ===, !== に置き換えれるため、こちらを使いましょう。

withは使うな!

JavaScriptではプログラムの記載を省略するためにwithを使用することができるが、こいつも予想外の行動を起こしやすいので使用しないようにしましょう。

newは使うな!

newを書き忘れるとバグの発見にすごく手間がかかるのでnewを使うのはやめましょう。って書いてあるんだけど、僕としてはnewは使うなというか、Classの概念を持ってくることはあまり好ましくないような気がしている。Classの概念とJavaScriptは相性が悪いと思う。

evalは使うな!

文字列をコンパイルして実行するevalを使うのは極力控えましょう。evalはコンパイルが走る分実行速度が遅くなります。

setTimeout、setIntervalに文字列を渡すな!

setTimeoutやsetIntervalでは第一引数に文字列を渡すとevalが走って実行することになります。そのため実行速度が遅くなります。わざわざevalを実行させる必要はないので、functionできっちりと定義しましょう。

まとめ

なかなか面白い本だった。記載してあるグッドプラクティスはすべての言語で共通して言えることも多いので、これからJavaScriptをはじめる人っていうよりもこれからプログラミングをはじめる人が読むといい本かもしれない。