Post-递增运算符在求值之前不会递增变量

Post-increment operator does not increment variable until after evaluation

我正在寻找为什么递增运算符不会在我设置 innerHTML 值的地方递增数值的原因,如下所示:

<div id="php"></div>

var a = 14;
document.getElementById("php").innerHTML = a++;//the result will be 14 instead of 15

您可以 ++a 代替使用 a++ 来获取变量赋值前的增量:

var a = 14;
document.getElementById("php").innerHTML = ++a;
<div id="php"></div>

因为你使用后缀increment operator variable++,这意味着你先获取值,然后变量递增。

当您使用前缀递增运算符 ++variable 时,变量先递增然后返回值。

var a = 42;
console.log(a++); // shows 42, value is 43
console.log(a);   // 43
console.log(++a); // 44
console.log(a);   // 44

它确实增加了变量,但是它写入 innerHTML 然后增加值,您可以使用 ++a 这将在写入 innerHTML 之前增加值。

var a = 14
var b = 14
console.log('before a', a)
document.getElementById("test1").innerHTML = a++
console.log('after a', a)

console.log('before b', b)
document.getElementById("test2").innerHTML = ++b
console.log('after b', b)
<div id="test1"></div>
<div id="test2"></div>