短路运算

  1. 逻辑与&&的运算
  • 如果两边都为数字,或字符串数字,则返回右边的
  • 如果左边的值为 【true 】,不管右边的值是(真)是(假)都返回右边的
  • 如果左边的值为 【false 】,则都返回左边的,那么返回左边的值,但是当逻辑与的左边为 null/NaN/undefined ,结果就会得到null/NaN/undefined。
let c = 7 && 6;
console.log(c)   //返回 6
 
 
let a = true && 6;
console.log(a)  //若左边为真,返回右边的, 也返回 6
let a = 6 && true;
console.log(a) // true
 
 
let b = false && 6;
console.log(b)   //若左边为假,返回左边的, 返回 false
let bq1 = 6 && false;
console.log(bq1)    //返回 false
 
// 没有空格
let dde = !"" && 5
console.log("dde:"+dde);  //5
let daee = "" && 5
console.log("ddee:"+daee);   //返回一个空
 
// 加了空格
let dde = !" " && 5       
console.log("dde:"+dde);  // 返回 false
let daee = " " && 5
console.log("ddee:"+daee);   //返回 5
  1. 逻辑或||的运算
  • 如果两边都为数字,或字符串数字,则返回左边的
  • 如果左边的值布尔转换后为true,那么返回左边的值,如果两个操作数都是是null (NaN/undefined),返回null(NaN/undefined)
  • 如果左边的值布尔转换后为false,那么返回右边的值(不管右边的值是真还是假)。
let aac = 10 || 111;
console.log(aac)    //返回左边的 10
 
let aa = true || 7;
console.log(aa)      //返回左边的 true
let aaa = 7 || true;
console.log(aaa)     //返回左边的 7
 
let aaaa = false || 66
console.log(aaaa);   //返回右边的 66
let aaab = 66 || false
console.log(aaab);   //返回左边的 66
 
 
let bb = false || 6;
console.log(bb)       //返回右边的 6
 
console.log(!"")   //返回 true
 
let dd = !"" || 5
console.log("dd:"+dd);  //true
let da = "" || 5  
console.log("da:"+da);  // 5
//有空格
let dda = !" " || 5
console.log("dda:"+dda);  // 5
let dae = " " || 5
console.log("dae:"+dae);   //空格
posted @ 2022-12-21 10:29  yunChuans  阅读(21)  评论(0编辑  收藏  举报