1. 判定规则:
0 // (数字0)
"" // (空字符串)
null
undefined
NaN
false
// 以上6种值为false
//其他 为 true
2. || 和 &&返回结果
返回最新判断的元素
|| :console.log(2 || 3)--> 结果为 2,判断2为true之后他就不会进行后面的判断。
&&:console.log(2 || 3)--> 结果为 3,他需要按顺序全部都判断一遍所以输出3。
3.优化用法
// || 或者运算符
// 用于判断对象内是否为空,为空则赋默认值
// obj 为传递的对象
var obj = {};
var a = obj.a;
if(!a){
obj.a = 'null'
}
//简写
var a = obj.a || 'null';
//可用于多次判断 ,由左向右那个有值赋值那个
var num = obj.a || obj.b || obj.c
// &&运算符用法
// 多用于 判断某个值之后调用方法
if(obj.funXX){
obj.funXX();
}
//简写
obj.funXX && obj.funXX();
//例如
var obj = {
a:1,
func:function(){
console.log('a');
}
}
obj.a == 1 && obj.func();