Web前端面试笔试题目(1):“n++”与“++n”的区别是什么?

1、案例1:

var n=2;
var r=n++ +  ++n  +  n++;
console.log(n);
console.log(r);

解析——
    上述小案例题目主要是一道用于区分前“++”、后“++”。


解决该题目首要问题,首先要明白
(1)表达式“n++” 、“++n”、“n++”=?
(2)变量“n” =?
其次,按照表达式从左至右顺序依次计算,不得调换顺序,解析过程如下:

var r=n++  +  ++n  +  n++
       step1:?__ 2
              n=?__ 3 


                  step2:?__ 4
                         n=?__ 4


                               step4:r=step1_? + step2_?  =2+4 =6


                        step3:?__ 4
                               n=?__ 5


       step5:r=step4  + step3_?  =6+4 =10


最后,由上述各个步骤表达式可以得出
 r=10
n=5

总结——
   (1)?_:表示的是“++n/n++”表达式的值;
   (2)n=?_:表示的是“++n/n++”运算后,“n”的值


2、案例2:

var n=2;
var r=++n  +  n++  +  ++n;
console.log(n);
console.log(r);

由于前边准备工作与案例1基本相同,所以直接跳到第2步
按照表达式从左至右顺序依次计算,不得调换顺序,解析过程如下:
var r=++n  +  n++  +  ++n
       step1:?__ 3
              n=?__ 3 


                step2:?__ 3
                       n=?__ 4


  step4:r=step1_? + step2_?  =3+3 =6


                         step3:?__ 5
        n=?__ 5


step5:r=step4  + step3_?   =6+5 =11
最后,可以得出结果:
r=11;
n=5;


总结:
上述两个案例只是简简单单的更换了“++n”与“n++”的前后顺序,计算结果就发生了一系列的变化,
但需要注意的是

变化的只是“r”的值,但是对于“n”的值,是不变的。


案例的效果只是想表达计算中“n++”与“++n”二者的异同。如下所示:
(1)前++(++n),将n的值加1,返回的是新值;
(2)后++(n++),将n的值加1,返回的是旧值。



3.案例3——“++”的拓展“--”

var n=10;
var r=n-- + --n + n--;
console.log(r);
console.log(n);

原理:与“++”基本相同,

(1)前--(--n),将n的值减1,表达式返回的是新值;

(2)后--(n--),将n的值减1,表达式返回的是旧值。


解析——

step1:n--  10   step2:--n  8(step1.n-1)  step3:n--  8

               n    9             n  8                      n    7(step2.n-1)

所以,r=step1.n-- + step2.--n + step3.n--

       =10+8+8

       =26

     n=8



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值