javascript我++ vs ++我
在javascript中,我曾经见过很多情况下使用过i++
,而且我知道它在前面的值中加了一个:
for (var i=1; i<=10; i++) { console.log(i); }
但是当我这样做时会发生什么:
++i;
这是使用--
运算符(当然除了减法而不是加法)吗?
i++
和++i
之间的区别是expression式的值。
值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
递增variables,返回新的值。
variable++
递增variables,但返回旧的值。
--variable
递减variables,返回新的值。
variable--
递减variables,但返回旧的值。
例如:
a = 5; b = 5; c = ++a; d = b++;
a
是6, b
是6, c
是6, d
是5。
如果不使用结果,前缀运算符对后缀运算符同样适用。
i++
=在语句中使用i++
的值,然后增加1
++i
=将++i
的值增加1,然后在语句中使用。
我想完整性,我会添加一个具体的OP的问题的第一个答案:
你的例子之一显示了i ++ / ++我在for循环中使用:
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); }
将它们粘贴到控制台窗口中,您可以看到它们都具有相同的输出。
var i = 0; console.log(i++); // 0 console.log(++i); // 2
它确定增量是在variables的值之前还是之后发生。
var j = 2; console.log(j++); // 2 console.log(j); // 3 var k = 2; console.log(++k); // 3 console.log(k); // 3
有一种情况,所有这些答案都没有提到,当i++
和++i
来操作其他数字时会发生什么。 当整个“ i++
之前, ++i
之后 ”这个概念很容易理解的时候,expression式本身就是很容易理解的,当你开始合并语句的时候会变得更加混乱。 见下面的例子C和D.
// Example A var i = 42; var a = i++; // equivalent to `var a = i; i++;` console.log(a); // 42 console.log(i); // 43 // Example B var i = 42; var b = ++i; // equivalent to `i++; 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++;` console.log(c); // 84 console.log(i); // 43 // Example D var i = 42; var d = ++i * 2; // equivalent to `i++; var d = i*2;` console.log(d); // 86 console.log(i); // 43
请注意,在示例C中, i++
不会在乘法和赋值之后才被计算。 这抵消了“ i++
应该首先按照操作顺序来评估i++
”这样的误解。换句话说, i++ * 2
实际上是在 i
增加i
之前计算i * 2
。
我知道,这个2011年的问题早就有答案了。
++variables:在使用variables之前递增variables
variables++:使用variables后递增variables
但我认为它可以仍然是有用的,包括一个代码段的答案,以确认他们在一个for循环中的行为。
只需在浏览器中validation在for循环声明中使用++ i与i ++时确实没有区别。
投掷 – 我与我 – 当我们在这。
console.log("-- with looping --"); console.log("using ++i in a for loop"); for (var i=1; i<=3; ++i) { console.log(i); } console.log("using i++ in a for loop"); for (var i=1; i<=3; i++) { console.log(i); } console.log("using --i in a for loop"); for (var i=3; i>=1; --i) { console.log(i); } console.log("using i-- in a for loop"); for (var i=3; i>=1; i--) { console.log(i); } console.log("-- without looping --"); var i = 1; console.log("i: "+ i); console.log("i++: "+ i++); console.log("i: "+ i); console.log("++i: "+ ++i); console.log("i: "+ i); console.log("--i: "+ --i); console.log("i: "+ i); console.log("i--: "+ i--); console.log("i: "+ i);