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)。
最佳答案
Javascript 默认将所有新变量定义为未定义(如果未明确定义),这与您尝试定义的 Number 对象不同。所以你应该像这样使用:
for (i=0; i<10; i++) {
a.test = a.test || 0;
++a.test
}
关于javascript - Javascript 中对象的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395580/