A||B
如果A能转换成true则返回A,否则返回B 因此,在boolean环境(在if的条件判断中)中使用时, 二者操作结果中只要有一个为true,返回true;二者操作结果都为false时返回false.
只有 0、null、undefined、空字符串 为假,其余都是真
例如:
o1=true || true // t || t 结果为 true
o2=false || true // f || t 结果为 true
o3=true || false // t || f 结果为 true
o4=false || (3 == 4) // f || f 结果为 false
o5="Cat" || "Dog" // t || t 结果为 Cat
o6=false || "Cat" // f || t 结果为 Cat
o7="Cat" || false // t || f 结果为 Cat
实际项目中
//1、在if判断中
//if(1==1 || 2==3){}//->两个条件中只要有一个条件为真,整体就为真 "或者"
//if(1==1 && 2==3){}//->两个条件中只有条件都为真,整体就为真 "并且"
//2、用作函数传参时参数的判断 是两个值求其中一个的时候【下面求和就是一个例子】
//1||2 ->1 "逻辑或" 首先看左边的值是真还是假,如果是真,返回的是左边的值,如果是假返回的是右边的值
//1&&2 ->2 "逻辑与" 首先看左边的值是真还是假,如果是真,返回的是右边的值,如果是假返回的是左边的值
3、用作对象的判断
let params={
pageNo:page||query.pageNo,
pageSize:query.pageSize
};
//如何看真假?
//只有 0、null、undefined、空字符串 为假,其余都是真
//我们在真实项目中应用逻辑或进行数据的初始化
//需求:求两个数的和,如果第二个数没有传递的话,我们默认加零
function sum(num1, num2) {
// if (typeof num2 === "undefined") {//->说明num2没有传递值,默认值是undefined,此时我们让它的值变为0
// num2 = 0;
// }
num2 = num2 || 0;//->undefined||0 ->num2=0 等价于上面的判断
console.log(num1 + num2);
}
//sum(100);//->num1=100 num2=undefined
//3、当||和&&同时出现的时候,&&的优先级大于||
console.log(0 || 1 && 2 || 3);
//1 && 2 ->2
//0 || 2 ->2
//2 || 3 ->2
网友评论