码迷,mamicode.com
首页 > Web开发 > 详细

JS优化:善用二元运算符&& 、||、三元运算符?:代替传统的if

时间:2016-09-30 11:55:47      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

条件选择语句转换成三元运算符?:句式

句式一、

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)

)

JS优化:善用二元运算符&& 、||、三元运算符?:代替传统的if

标签:

原文地址:http://www.cnblogs.com/Billzhizhi/p/5923283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!