论坛首页 入门技术论坛

一个小细节现实后的蛋疼结果。

浏览 1856 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-07   最后修改:2011-03-07
情况是这样子的,比如你用单击按钮在单数次单击里面要求某个数为0,双数次单击里面要求为1。实现的方法可以有:
var param = 0;

1:param = param^1;

2:if(param==0){
       param=1;
   }else{
       param=0;
   }

3:param=(param+1)%2;


由于本人喜欢用第一种,简洁明了,但被别人读到代码的时候说看不懂这句,叫我改成第二种,我就郁闷了。求教下大家,关于第一种有看不懂的没? 哦,说了就来气。。。

基础啊基础,第一次知道有这么大的重要性。
   发表时间:2011-03-07  

LZ 1.的实现,貌似有笔误。
应该类似:
 param = (param+1)&1;  


1的实现是很多程序员都知道的trick,而且在param为负数时也能正确工作(当然你这个场景不会出现负数)。
但太clerver的代码容易出错,就像LZ一不小心笔误了。
2,3.就不容易出错。虽然笨了点。


joknm 写道
情况是这样子的,比如你用单击按钮在单数次单击里面要求某个数为0,双数次单击里面要求为1。实现的方法可以有:
var param = 0;

1:param = param^1;



0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics