见过好多插件都这么用,感觉高大上。。。
|| 与 &&
说到底也没啥,稍微懂点程序的,或者是搞过相关硬件编程的都会用到这玩意,就算是数学,中学你可能都用到过。是不是不信?
&& 和 || 运算符使用短路逻辑(short-circuit logic),是否会执行第二个语句(操作数)取决于第一个操作数的结果。在需要访问某个对象的属性时,使用这个特性可以事先检测该对象是否为空:
var name = o && o.getName();
或运算可以用来设置默认值:var name = otherName || “default”;
类似地,JavaScript 也有一个用于条件表达式的三元操作符:var allowed = (age > 18) ? “yes” : “no”;
对于&&,在 (表达式1)&&(表达式2),只有在表达式1
与表达式2
都成立时才为true,那么就有:表达式1为false时表达式,就不用看了肯定有:(表达式1)&&(表达式2)=false;
对于||,在 value= (表达式1)||(表达式2),只有在
表达式1
与
表达式2
都成立时才为true,那么就有:
表达式1为false时表达式,value=表达式2的布尔值,
表达式1为true时表达式,value=true,根本就不用看表达式2了
so—-短路大名 诞生
&&:
表达式1 | 表达式2 | 结果(value) |
---|---|---|
false | * | false |
true | false | false |
true | true | true |
||:
表达式1 | 表达式2 | 结果(value) |
---|---|---|
true | * | true |
false | false | false |
false | true | true |
用到js里就变成拿值(对象)了,常见如下:
var name = otherName || “default”;
在 JavaScript 中, true && expression 总是会评估为 expression ,而 false &&
expression 总是执行为 false 。因此,如果条件为 true ,则 && 后面的元素将显示在输出中。 如果是 false,React 将会忽略并跳过它。 ——-见React官网