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);