文章标签 ‘运算符优先级’

使用运算符 -= 的陷阱

2012年7月28日 没有评论

一般的编程语言中都提供了+=、-=这样的运算符,例如

var para = 1;
para = para + 4;
//等价于
para += 4;

//同样
para = para - 4;
//等价于
para -= 4;

我的编程习惯一直比较倾向后者,最近在写php代码时候发现了一个小陷阱,如下代码:

$cnt = 100;
$offset1 = 80;
$offset2 = 120;

$cnt -= $offset1 + $offset2;

我的原意是$cnt – $offset1 + $offset2,结果为140,但是真实的结果是-100。这也是典型运算符优先级导致的问题,原来 + 的优先级要高于 -=,所以自然结果就是-100了。经测试java、php、javascript、python都是这样。

使用 +=、-= 时如果超过两个操作数,一定要清楚到底在做什么,特别要注意运算符的优先级。

平时我是记不住那么多运算符的优先级顺序,在处理多个参数进行混合运算时都是祭出法宝,那就是使用括号来控制优先级。

分类: web前端 标签:

无觅相关文章插件,快速提升流量