javascript中的逻辑运算符有&&与运算、||或运算、!非运算,与和或运算可以实现短路运算,使代码更加精简可读,逻辑运算的运算机制是对布尔值进行比较,由于js是弱类型的语言,所有不满足运算符运算对象数据类型的项都会自动转换,在逻辑运算中,转换为boolean类型的值后为false的情况:0、""、null、false、undefined、NaN,其他都为true。

  1. 求真
    模式var a = b || c,其运算逻辑为:首先看b,如果b为true的话,a就等于b;如果b不为true,则a的值等于c,不管c是否为true(b、c的类型不是boolean类型会进行自动类型转换)。下面来看个小案例:
1
2
3
4
var a ,
b = 0,
c = null;
console.log(a = b || c); // a = null;
  1. 求假
    模式var x = y && z,其运算逻辑为:首先看y,如果y为false的话,x就等于y;如果y不为false,则x的值等于z,不管z是否为false(y、z的类型不是boolean类型会进行自动类型转换)。也来看个小案例:
1
2
3
4
var x,
y = null,
z = 2333;
console.log(x = y && z); //null

**总结:看运算符,是运算true还是false;首先满足条件首先赋值,不管嵌套多少层,短路运算符有利于精简代码,增强代码可读性,在优雅降级方面有很好的作用。

多层嵌套:多层嵌套