++ i 和 i++区别

++i 先自增再运算
i++ 先运算再自增

var a, i = 10;
a = i ++; // a = 10 i = 11 先执行赋值,再自增。语句执行后a=i, i = i + 1;
a = ++i; //a = 11, i = 11 i先自增,再执行赋值。语句执行后i = i + 1  a = i;

打印中 ++ i 和 i++

var i = 10;
console.log(i++); //10 ,先引用原值,然后加1

等价于:

 var i= 10;
 console.log(i);   //先输出i
 i++;              //然后加1

while循环中的 ++ i 和 i++

let i = 9;
while( i ++ < 10){console.log(i)}; 
// 9 ;先执行逻辑逻辑运算,再自增 i = 9 》 i< 10 》i++ 》i =10
while(++ i < 10){console.log(i)}; 
// 先自增,再执行逻辑逻辑运算 i = 10 退出

运算中的 ++ i 和 i++

let n = 1
let f = 5
let d = f + n++ // d = 5 + 1 = 6 》 n++
// d = 6 , n = 2

for循环中 ++n 和 n ++ 执行结果是一样的

for(let i=0;i<10;i++){
	//循环体
}

for(初始化①;条件②;自增③){
	循环体④
}

执行数序是:

  1. 初始化
  2. 条件(为真继续执行)
  3. 执行循环体代码
  4. i自增
  5. 回到第2步,一直循环下去,直到第2步为假, 退出循环.

执行顺序如下:
①②④③ ②④③ ②④③… …直到②为假结束

因为都要等代码块执行完毕才能执行自增,所以结果一样,但性能是不一样,在大量数据的时候++i的性能要比i++的性能好,原因:
i++由于是在使用当前值之后再+1,所以需要一个临时的变量来转存。
而++i则是在直接+1,省去了对内存的操作的环节,相对而言能够提高性能

你可能感兴趣的:(++ i 和 i++区别)