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>
我正在寻找为什么递增运算符不会在我设置 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>