前端面试题:i++与++i

例子:

        let a = 5;

        let res1 = ++a + ++a;

        let res2 = a++ + a++;

        let res3 = a++ + ++a;

        let res4 = ++a + a++;

        console.log(res1)

        console.log(res2)

        console.log(res3)

        console.log(res4)

运用浏览器输出结果如下:

 

 运用浏览器单步执行:

我们先将res1-4分别打上断点,再刷新查看脚本中变量的结果:

分别如下:

 

 我们在程序的最后一行输入console.log(a);得到a=13;

由此我们大概可以梳理出如下结果:

 再看如下程序能得到理解:

let x = 0;
let y = 0;
console.log(x++);//输出0
//下面结果输出1,说明i++符合先计算再自加,i++的赋值运算输出的值不会加1,但i在赋值运算后自身会加1
console.log(x);
console.log(++y);// 输出1,这说明++i先自加再计算,++i的赋值运算输出的值会加1
console.log(y);// 输出1

由此我们可以推断出整个过程:

 我们发现无论是a++还是++a最后a的结果都是加1的,只是+1执行的顺序不同。

总结:i++先计算再加1,赋值运算不加1.

          ++i自加1再计算,赋值运算都加1.

所以由此猜测出:++i的计算效率比i++要高。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值