ここ2週間ほど JavaScript を使ってるわけですが、いくつか嵌った部分があったのでメモ。 変数の宣言 var s = 'Hello, world'; (function() { print(s); var s = 'Hello, function'; print(s); })(); 結果 undefined Hello, functionこれはサイ本の例。実際に似たようなコード書いて悲しいことになりました。 同じ関数内のどこで宣言されても、全部関数の先頭で宣言されたのと同じ意味になるらしいので怖いですね。 bool への暗黙変換 var Obj = function() { var value; this.setValue = function(v) { // 値が設定されていて、変更が無いなら何もしない if (value && v == value) return; // ここ