Web前端面试笔试题目(1):“n++”与“++n”的区别是什么?
2017-04-12 17:59
483 查看
1、案例1:
解析——
上述小案例题目主要是一道用于区分前“++”、后“++”。
解决该题目首要问题,首先要明白
(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:
由于前边准备工作与案例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
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
相关文章推荐
- PHP中include() 与 require() 的区别(面试笔试常见题目)
- Web前端面试笔试题——null和undefined有什么区别么?
- 行内元素和块级元素的具体区别是什么?inline-block是什么?(面试题目)
- 句柄和ID有什么区别(百度面试题目)
- C/C++ 笔试、面试题目大汇总(四)
- C/C++ 笔试、面试题目大汇总
- C/C++ 笔试、面试题目大汇总
- c/c++ 笔试、面试题目大汇总
- C/C++ 笔试、面试题目
- C/C++ 笔试、面试题目大汇总
- C/C++ 笔试、面试题目大汇总(三)
- C/C++ 笔试、面试题目大汇总
- C/C++ 笔试、面试题目大汇总(二)
- 一道面试题目8 delete与truncate的区别
- C/C++ 笔试、面试题目大汇总
- C/C++ 笔试、面试题目大汇总
- [C/C++] C/C++ 笔试、面试题目大汇总
- Intel笔试面试题目
- 常见笔试/面试题目
- C/C++笔试、面试题目大汇总