在javascript中:
以下内容会被当成false处理:"" , false , 0 , null , undefined , NaN
其他都是true。注意:字符串"false"也会被当做true处理,在未转型的情况下他是字符串,属于一个对象,所以是true。
所以:
a || b:
1.只要||前面是false,则不管后面,都返回"||"后面的值。
2.只要||前面是true,则不管后面,都返回"||"前面的值。
我们称这种为短路原理: 知道了前面第一个的结果就知道最后的输出,如果为第一个为:true,则取第一个的值,如果第一个为false,则取第二个的值。
a && b:
1、只要“&&”前面是false,则不管后面,结果都将返“&&”前面的值;
2、只要“&&”前面是true,则不管后面,结果都将返“&&”后面的值;
&& 优先级高于 ||
参考链接:https://www.jianshu.com/p/c31c51a9bdca