javascript - Javascript 中对象的默认值

标签 javascript node.js object

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/

相关文章:

javascript - 如何在单页应用程序中将数据从一个页面传递到另一个页面

javascript - 不知道为什么 AJAX 表单数据向 MVC Controller 发送 null

javascript - getElementById 到 getElementsByClassName

node.js - socketio中 `socket.broadcast.to(param)`的用途是什么

javascript - MeteorJS 中的图像文件上传

javascript - React/Next.js 站点无法在 Safari 中正确加载(空白页)

node.js - 如何为RESTlet构建OAuth授权 header ?

javascript - 如何避免重复对象?

javascript - 在 JavaScript 中引用具有数值的对象属性

javascript - 在 Javascript 对象数组中添加一个对象