牙科医院网站设计怎么做,电商平台的营销策略,做网站app优惠活动的,上海服装外贸公司排名本文主要内容#xff1a;了解逻辑运算符 #xff08;逻辑与#xff09;和 ||#xff08;逻辑或#xff09;的返回值。
在JavaScript中#xff0c;逻辑运算符 #xff08;逻辑与#xff09;和 ||#xff08;逻辑或#xff09;的返回值可能并不总…本文主要内容了解逻辑运算符 逻辑与和 ||逻辑或的返回值。
在JavaScript中逻辑运算符 逻辑与和 ||逻辑或的返回值可能并不总是布尔值true 或 false。它们的返回值取决于它们操作的操作数的值。以下是关于这两个运算符详细解析
逻辑与
如果第一个操作数的值为 falsy例如false、0、、null、undefined、NaN则整个表达式的结果就是这个 falsy 的值并且不会计算第二个操作数。
如果第一个操作数的值为 truthy任何不是 falsy 的值则整个表达式的结果就是第二个操作数的值。
console.log(false hello); // 输出false
console.log(true hello); // 输出hello
console.log(0 hello); // 输出0
console.log(hello world); // 输出world 逻辑或||
如果第一个操作数的值为 truthy则整个表达式的结果就是这个 truthy 的值并且不会计算第二个操作数。
如果第一个操作数的值为 falsy则整个表达式的结果就是第二个操作数的值。
console.log(true || hello); // 输出true
console.log(false || hello); // 输出hello
console.log(0 || hello); // 输出hello
console.log( || world); // 输出world
注意
Falsy假值是在布尔上下文中被当作false的值。这些值包括false、0数字零、空字符串、null、undefined、NaN非数字在逻辑运算或条件判断中这些值都会被当作false来处理。
Truthy真值是在布尔上下文中被当作true的值。除了上述的falsy值之外JavaScript中的所有其他值都是truthy的。这包括所有对象包括数组和函数、所有非零数字包括无穷大Infinity和-Infinity、所有非空字符串、true在逻辑运算或条件判断中这些值都会被当作true来处理。
使用场景
这种“短路”行为即如果第一个操作数已经决定了整个表达式的值则不会计算第二个操作数在JavaScript中非常有用特别是在为变量赋值时。例如你可以使用 || 运算符来提供一个默认值
let name userInput || admi; // 如果userInput是falsy则name将被设置为admi
同样你也可以使用 运算符来确保一个变量在访问其属性或方法之前已经定义
let result obj obj.method(); // 如果obj是falsy则result将被设置为obj的值即falsy否则result将是obj.method()的返回值 总结
逻辑与: 如果第一个操作数为假返回第一个操作数短路。如果第一个操作数为真返回第二个操作数评估第二个操作数。逻辑或||: 如果第一个操作数为真返回第一个操作数短路。如果第一个操作数为假返回第二个操作数评估第二个操作数。