巧妙运用布尔判定和短路规则

176 阅读1分钟

常见的运用

&&||判定符大家都很熟悉了,如:

console.log( 1>2 && 2>3 ) //true
console.log( 1>2 || 2<3 ) //true

那么如果这样呢:

console.log( 1 && 2 ) //2
console.log( 2 || 3 ) //2

为什么会这样呢,那就要说到短路规则了:

1.首先是将值转化为布尔值进行判断。

2.&&运算符会返回最后一个运算为true的结果,所以console.log( 1 && 2 ) //2

3.||运算符会返回第一个为true的结果,所以console.log( 2 || 3 ) //2

好,到这里我们就可以尝试提升一下自己的代码质量了。

巧妙运用

当你要给一个值进行默认值判定时:

//if判断
let nums = obj.a
if(!obj.a){
  nums = 'default'
}
//三元运算
nums = obj.a ? obj.a : 'default'
//短路规则
nums =  obj.a || 'default'

当你要执行一个你不确定存不存在的方法时:

//if运用
if(obj.fn)fn()
//短路规则
obj.fn && obj.fn()

结语:综上所述,巧妙运用短路规则可以提高自己的代码质量,并且很多框架库都有这样写比如vue等,希望有帮助到小伙伴们!