做加法的结果应该是五,但是结果是NAN

时间:2019-06-27 18:33:19

标签: javascript reactjs object ecmascript-6 scope

  • 我正在做加法运算,结果应为5,但不确定。
  • 我调试了foo.baz和foo.bar的代码,它应该分别为3和2。
  • 但是它的出现是不确定的。
  • 你们能告诉我什么问题吗
  • 以便我可以继续进行下去。
  • 在下面提供我的代码段
var bar = 1,
    foo = {};

foo: {
    bar: 2;
    baz: ++bar; //3
};
//3+2

console.log("foo.baz--->", foo.baz);
console.log("foo.bar--->", foo.bar);

console.log("bar--->", bar);

foo.baz + foo.bar + bar;

1 个答案:

答案 0 :(得分:0)

切换到foo = {bar:2,baz:bar ++}(如下所示),这是您正在寻找的更多内容。同样,baz等于2,而不是3,因为您要添加bar(等于1)+1。如果您想要foo.bar和bar是两个不同的变量。

var bar = 1,
    foo = {};

foo = {
    bar: 2,
    baz: ++bar //2
};


console.log("foo.baz--->", foo.baz);
console.log("foo.bar--->", foo.bar);

console.log("bar--->", bar);

console.log(foo.baz + foo.bar + bar); // This will equal 6

这将console.log foo.baz = 2,foo.bar = 2,bar = 2

https://www.w3schools.com/js/js_objects.asp这是关于如何在JavaScript中使用对象的课程。如果您想知道为什么bar = 2,那是因为++更改了变量bar的值。如果要保留其原始值,可以使用bar +1。