您的位置:首页 > 职场人生

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

2017-04-12 17:59 483 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息