在 javascript 中,我已经看到i++
在很多情况下使用过,我知道它会在前面的值上加 1:
for (var i=1; i<=10; i++) {
console.log(i);
}
但是当我这样做时会发生什么:
++i;
使用--
运算符有什么不同吗(当然,它是减法而不是加法)?
在 javascript 中,我已经看到i++
在很多情况下使用过,我知道它会在前面的值上加 1:
for (var i=1; i<=10; i++) {
console.log(i);
}
但是当我这样做时会发生什么:
++i;
使用--
运算符有什么不同吗(当然,它是减法而不是加法)?
i++
和之间的区别++i
是表达式的值。
该值i++
是i
增量前的值。的值++i
是i
增量后的值。
例子:
var i = 42;
alert(i++); // shows 42
alert(i); // shows 43
i = 42;
alert(++i); // shows 43
alert(i); // shows 43
在i--
与--i
运营商的工作方式相同。
++variable
增加变量,返回新值。
variable++
增加变量,但返回旧值。
--variable
递减变量,返回新值。
variable--
递减变量,但返回旧值。
例如:
a = 5;
b = 5;
c = ++a;
d = b++;
a
是 6,b
是 6,c
是 6,d
是 5。
如果您不使用结果,则前缀运算符与后缀运算符的作用相同。
我认为为了完整性,我会添加一个特定于 OP 问题的第一个答案:
您的示例之一显示了在 for 循环中使用的 i++ / ++i :
for (i=1; i<=10; i++) {
alert(i);
}
无论您使用哪种警报,您都会在警报中获得 1-10。例子:
console.log("i++");
for (i=1; i<=10; i++) {
console.log(i);
}
console.log("++i");
for (i=1; i<=10; ++i) {
console.log(i);
}
将它们粘贴到控制台窗口中,您可以看到它们都具有相同的输出。
i++
= 在语句中使用 i 的值然后将其
++i
增加1 = 将 i 的值增加 1 然后在语句中使用。
所有这些答案都没有提到的一种情况是,在与其他数字的运算中使用i++
和++i
使用时会发生什么。虽然整个“i++
在之前,++i
在之后”的概念在表达式单独时很容易理解,但当您开始组合语句时,它会变得更加混乱。参见下面的示例 C 和 D。
// Example A
var i = 42;
var a = i++; // equivalent to `var a = i; i = i+1;`
console.log(a); // 42
console.log(i); // 43
// Example B
var i = 42;
var b = ++i; // equivalent to `i = i+1; var b = i;`
console.log(b); // 43
console.log(i); // 43
// Example C
var i = 42;
var c = i++ * 2; // equivalent to `var c = i*2; i = i+1;`
console.log(c); // 84
console.log(i); // 43
// Example D
var i = 42;
var d = ++i * 2; // equivalent to `i = i+1; var d = i*2;`
console.log(d); // 86
console.log(i); // 43
请注意,在示例 C 中,i++
直到在乘法和赋值之后才计算c
。这反驳了“i++
应该按照操作顺序首先评估”的误解。所以换句话说,该语句在它增加之前i++ * 2
实际计算。i * 2
i