JavaScript中的短路运算符
javascript中的逻辑运算符有&&
与运算、||
或运算、!
非运算,与和或运算可以实现短路运算,使代码更加精简可读,逻辑运算的运算机制是对布尔值进行比较,由于js是弱类型的语言,所有不满足运算符运算对象数据类型的项都会自动转换,在逻辑运算中,转换为boolean类型的值后为false的情况:0、""、null、false、undefined、NaN,其他都为true。
- 求真
模式var a = b || c
,其运算逻辑为:首先看b,如果b为true的话,a就等于b;如果b不为true,则a的值等于c,不管c是否为true(b、c的类型不是boolean类型会进行自动类型转换)。下面来看个小案例:
1 | var a , |
- 求假
模式var x = y && z
,其运算逻辑为:首先看y,如果y为false的话,x就等于y;如果y不为false,则x的值等于z,不管z是否为false(y、z的类型不是boolean类型会进行自动类型转换)。也来看个小案例:
1 | var x, |
**总结:看运算符,是运算true还是false;首先满足条件首先赋值,不管嵌套多少层,短路运算符有利于精简代码,增强代码可读性,在优雅降级方面有很好的作用。
多层嵌套: