JS优化:善用二元运算符&& 、||、三元运算符?:代替传统的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)

)

转载于:https://www.cnblogs.com/Billzhizhi/p/5923283.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值