&&与 ||或
平时我们写判断语句正常的写法:
var a = 5, b = '';
if (a > 10) {
b = 'a大于10';
} else {
b = 'a小于10';
}
使用&&和||的写法:
var a = 5, b = '';
b = a > 10 && 'a大于10' || 'a小于10';
因为使用“&&”如果前面不为真的时候直接跳到“||”,
如果“&&”一开始就为真,就会看第二个是否为真,第二个为真就直接返回,
有时候会有
if (a < 10) {
b = 0;
} else {
b = 1;
}
如果再用&&+||就会出现不正常的效果
b = a < 10 && 0 || 1;
如果这样写只会等于1;
因为 true&&0 在js中0为false所以会再去执行 || 所以会返回1;
改编写法:
a < 10 && (b = 0, 1) || (b = 1);
这种写法一般用于function,因为有时候我们写的function没有返回值的时候,默认返回undefined,
所以使用括号加 ,表达式
a < 10 && (fn(a), true) || fasle;