当前位置: 代码迷 >> Web前端 >> 运算符优先级 i++ 与 i-
  详细解决方案

运算符优先级 i++ 与 i-

热度:148   发布时间:2012-11-05 09:35:12.0
运算符优先级 i++ 与 i--
也是在以前面试中也到过的一个题目:

var a = 1, b = 2, c = a+++b;


请问以下输出什么?

alert(c) ? 
alert(a) ?
alert(b) ?

答案是:3,2 ,2

那么为什么是这样答案呐?

其实主要是考察 ++,-- 运算符的操作。

a++ 与 ++a的区别?前者是先执行运算执行完后再在a上加1,而后者是先给a加1后在执行运算。
所以就是为什么c的结果是3,而a结果是2的原因了。如果换成是i--那么结果读者也很好计算出来了?


参考:
http://www.qianduan.net/operator-priority-i-u003d-1-iii-u003d-3-ii-mean-what-and-why.html

1 楼 mbn 2010-09-28  
c = a+++b; 
很反感面试者拿这种自以为很高明的代码来折磨被面试者,如果只是单纯的考++i, i++, --i,i--之类的估计稍懂一点程序的人都能清楚的知道,但是这帮面试的家伙们自以为"c = a+++b;" 增色不少。 任何一门语言在编码中都有介于正确和错误中间的灰色地带,所以才会有编码规范。像这样的语句,就应该像错误那样对待它,没有什么好商量的, 在实际开发中如果有人写这样的代码,那么在review的时候应该不会通过。
2 楼 deng131 2010-09-28  
平时大多数是在根据业务需求开发,很少关注这些细节,至少会很少使用些不常用方法,别人看起来也容易明白,让我想起了在豆瓣上别人说的那样,代码是写给人看的,计算机只是顺便执行下。
  相关解决方案