天天看点

逻辑与(&&)和逻辑或(||)逻辑与 和 逻辑或

逻辑与 和 逻辑或

真值与假值

  • 理解||和&&,首先明白真值与假值
  • truthy(真值):在 JavaScript 中,truthy(真值)指的是在布尔值上下文中,转换后的值为真的值。所有值都是真值,除非它们被定义为 假值(即除 false、0、""、null、undefined 和 NaN 以外皆为真值)。
  • falsy(假值):false、0、""、null、undefined 和 NaN

&& 和 ||

逻辑与:&&

  • 例子
/**
 * 
 * @param {*} n 
 * @returns 
 * @description 逻辑与测试
 */
function testAnd(n) {
    const result = n && 1.5
    return result
}
           
  • 当n为truthy时,函数值返回&&右侧值,
  • 当n为falsy时,函数值返回视情况

例如,如下测试代码中

/**
 * 
 * @param {*} n 
 * @returns 
 * @description 逻辑与测试
 */
function testAnd(n) {
    const result = n && 1.5
    return result
}
//与逻辑测试
console.log("与逻辑:", testAnd(3));
console.log("与逻辑:", testAnd(-2)); //负数为truthy
console.log("与逻辑:", testAnd(-1));
console.log("与逻辑:", testAnd(0));
console.log("与逻辑:", testAnd(null));
console.log("与逻辑:", testAnd(NaN));
console.log("与逻辑:", testAnd(undefined));
console.log("与逻辑:", testAnd(false));
           

返回值为

与逻辑: 1.5
与逻辑: 1.5
与逻辑: 1.5
与逻辑: 0
与逻辑: null
与逻辑: NaN
与逻辑: undefined
与逻辑: false
           

逻辑或:||

  • 当 ||左侧值是falsy,返回||右侧值
  • 当左侧值是truthy,返回||左侧值
  • 例子
/**
 * 
 * @param {*} n 
 * @returns 
 * @description 逻辑或测试
 */
function testOr(n, m = 1.5) {
    let result = n || m
    return result
}

//或逻辑测试
console.log("或逻辑:", testOr(2));
console.log("或逻辑:", testOr(0, null));
console.log("或逻辑:", testOr(0, 0));
console.log("或逻辑:", testOr(0, NaN));
console.log("或逻辑:", testOr(0, undefined));//使用undefined,将会使用默认值
console.log("或逻辑:", testOr(0, ""));
console.log("或逻辑:", testOr(0, false));
console.log("或逻辑:", testOr(-1));
console.log("或逻辑:", testOr(-2));
console.log("或逻辑:", testOr(0));
console.log("或逻辑:", testOr(null));
console.log("或逻辑:", testOr(""));
console.log("或逻辑:", testOr(false));
console.log("或逻辑:", testOr(undefined));
           

返回值是

或逻辑: 2
或逻辑: null
或逻辑: 0
或逻辑: NaN
或逻辑: 1.5
或逻辑:
或逻辑: false
或逻辑: -1
或逻辑: -2
或逻辑: 1.5
或逻辑: 1.5
或逻辑: 1.5
或逻辑: 1.5
或逻辑: 1.5
           

继续阅读