逻辑与 和 逻辑或
真值与假值
- 理解||和&&,首先明白真值与假值
- 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