我在某种程度上理解了注释中y
等于4
的原因,但是我不明白为什么用y
声明变量x++
的原因它不会递增它并分配3
而不是仅仅获取先前声明的值?
// In this line: var y = x++ the value of x is assigned to y before x is incremented,
// so y equals 3 on line 2, while x equals 4.
// Therefore on line 3, y now equals 4 instead of 5.
var x = 3;
var y = x++;
y += 1;
答案 0 :(得分:2)
这与放置++的位置有关。 ++的工作方式(仅是它的语法)是,如果在x之后使用它,代码将使y变量递增,但是表达式在递增x之前将返回值(因此它将仅返回的值)。 X)。您想要的是递增首先发生。因此,下面的代码应该在增加值时起作用,因为它将首先增加,然后返回变量。
let x = 3;
let y = ++x;
y += 1;
console.log(y); // Returns 5