JS优化:善用二元运算符&& 、||、三元运算符?:代替传统的if.选
时间:2014-04-19 10:13 来源: 我爱IT技术网 作者:微风
善用二元运算符&& 、||、三元运算符?:代替传统的if.选择语句
条件选择语句转换成三元运算符?:句式
句式一、
if(a) do_a
elseif(b) do_b
else do_c
转化为:
=>a ? do_a
: b ?do_b
: do_c
句式二、
if(a) do_a
转化为:
=> a &&do_a
句式三、
if(!a) do_a
转化为:
=> a || do_a
了解了上面的规则,再介绍一下在实际应用中的操作:
针对句式一实例:
if ( a.options.wrapperW ) {
a.wrapperW = a.options.wrapperW
}else if( a.options.wrapperW ){
a.wrapperW = a.wrapper.clientWidth
}else{
a.wrapperW= window.innerWidth
}
转换为:
a.wrapperW = a.options.wrapperW ? a.options.wrapperW :a.wrapper.clientWidth ? a.wrapper.clientWidth : window.innerWidth
针对句式二实例:
if(this.options.autoInit) {
this.refresh();
}
转化为
this.options.autoInit && this.refresh();
针对句式三实例:
if(!!b.endCallBack == false){
...
}
b.endCallBack || (…. )
当某条分支语句有多条代码的时候,我们可以借助刚才讲到的降低语句数的技巧来处理
Eg:
摘取base_hscroll.js中的一段代码:
b.endCallBack || b.options.enabled && ( b.options.onBeforeScrollStart&& b.options.onBeforeScrollStart.call(b, a) ,b.absDistX = 0 ,b.absDistY = 0 , b.pointX= c.pageX , b.pointY= c.pageY ,b.directionLocked = !1 ,b.options.onSlideStart && b.options.onSlideStart.call(b, a) ,b._bind(MOVE_EV) ,b._bind(END_EV) ,b._bind(CANCEL_EV) )
http://www.52ij.com/jishu/5214.htmlJS优化:降低语句数
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5215.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
