Javascript代码
var a = {};
a.test += 1; //NaN
++a.test; //NaN
反而
var a = {};
a.test = 0;
++a.test; //1
a.test += 1; //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)。