&& 和 || 是逻辑运算符,返回的是boolean值; & 和 | 是位运算符。
var a = 1,
b = 1;
console.log(a>2 && b<2)
console.log(a>2 & b<2)
前者只会执行到a>2,而b<2是不会执行的,返回false
后者执行a>2还会继续执行b<2,最终返回0
因而性能上 && 和 || 会比 & 和 | 好
情景模拟,下面c字段是后台返回的,但是不确定一定有值,这时候要给个默认值1
var c = null,
d = c || 1,
e = c | 1;
console.log(d);//1
console.log(e);//1
但是当c = 2的时候
c = 2;
d = c || 1;
e = c | 1;
console.log(d);//2
console.log(e);//3
从上面就能看出,在js里面还是用 && 和 || 好一点!
网友评论