布尔判定与短路规则 && ||

71 阅读1分钟

首先思考一个问题 ,下面会输出什么?

console.log(2 || 4)

consloe.log(2 && 4)

运行流程:1、进行布尔判定 2、返回结果为:能判定结果的最后一个数据

&& 两侧都是真,才为真 如果第一项判定为假,不会判定第二项

|| 有一个为真 就是真 如果第一项为真 ,不会判定第二项

undefined null false 0 "" NaN 为false 其余的为true

console.log(2 || 4) 返回 2

consloe.log(2 && 4) 返回 4

应用:如果obj.a有值 返回它的值,没有值 给一个默认值 'name

let obj={a:''fun(){}}

可以使用if判断:

if(!obj.a) return obj.a = 'name'

可以使用三目运算符:

   obj.a ? obj.a :'name'

使用 ||:

   obj.a || 'name'  //真的是代码简介了好多。
   

同时还可以调用函数:

   obj.a && obj.fun  //obj.a有值的时候,调用里面的fun
   //有值不调用。