Javascriptコード
var a = {};
a.test += 1; //NaN
++a.test; //NaN
その代わり
var a = {};
a.test = 0;
++a.test; //1
a.test += 1; //2
とにかく、最初のコードサンプルを2番目と同じように機能させることができるのではないかと思います。つまり、0に明示的に割り当てる必要はありません。代わりに、オブジェクトのプロパティのデフォルト値を0に割り当てる場合と同様ですundefined
。node.jsでこれを実行しようとしています。したがって、クロスブラウザの問題や古いECMA仕様の問題はありません。
var i;
for(i = 0; i<10; i++) {
if(a.test) {
++a.test;
} else {
a.test = 0;
++a.test;
}
//a.test = a.test || 0; (1)
//++a.test;
}
可能であれば、上記のコードの内部のif / elseまたは代入ステートメント(1)を削除できます。