js逻辑运算a&&b 与 a||b作为返回值时的规律

本文详细介绍了JavaScript中逻辑与(&&), 逻辑或(||)运算符的工作原理及运算优先级。阐述了当表达式为真或假时,这些运算符如何返回特定的值,并解释了它们在多个表达式中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. JS对于逻辑与运算a&&b,如果a不成立(运算后结果是false,null,'',0,undefined等值,下同)则返回a,如果a成立则返回b,如果使用&&连接了多个表达式,如果每个表达式都成立,则返回最后一个表达式的运算结果,如果有至少一个不成立,则返第一个不成立的表达式的运算结果

2. JS对于逻辑或运算a||b,则是从左边开始,返回第一个成立的表达式的运算结果,如果全部不成立则返回最后一个表达式的运算结果。

3. &&优先级高于||,先运算&&再用&&运算的结果去||运算。

转载于:https://my.oschina.net/u/3400107/blog/1825808

逻辑运算符 AND(`&&`)在编程中用于判断多个条件是否同成立。当使用 `&&` 连接多个条件,只有所有条件都为 `true` ,整个表达式的结果才会是 `true`;只要有一个条件为 `false`,整个表达式的结果就会是 `false`。 ### 使用方法 - **基本语法**:`condition1 && condition2 && condition3...` - **返回值**:返回布尔值 `true` 或 `false`,具体取决于操作数的条件是否都满足。 - **短路特性**:`&&` 具有短路求值的特性。如果第一个条件为 `false`,后续的条件将不再计算,因为整体结果已经可以确定为 `false`[^1]。 ### 示例代码 ```javascript let a = 2; let b = 5; let c = 10; let d = 0; // 使用 && 运算符判断多个条件是否同成立 console.log(a < b && a > c); // false,因为 a > c 不成立 console.log(a < b && a < c && a > d && c > b); // true,所有条件都成立 ``` ### 其他运算符的区别 - ** `||` 的区别**:`&&` 要求所有条件都为 `true`,而 `||` 只需要至少一个条件为 `true`。 - ** `&` 的区别**:`&&` 是逻辑,用于布尔值之间的运算;`&` 是按位,用于二进制位的运算。此外,`&&` 具有短路特性,而 `&` 会计算所有条件[^2]。 ### 应用场景 - **条件判断**:在 `if`、`while`、`for` 等控制流语句中,`&&` 常用于组合多个条件。 - **避免空值错误**:通过 `&&` 可以在访问对象属性之前检查对象是否为 `null` 或 `undefined`,例如: ```javascript let user = { name: "Alice" }; console.log(user && user.name); // 输出 "Alice" let guest = null; console.log(guest && guest.name); // 输出 null,避免了错误 ``` ### 优先级结合性 - **优先级**:`&&` 的优先级低于比较运算符(如 `>`、`<`、`==` 等),但高于赋值运算符(如 `=`、`+=` 等)[^3]。 - **结合性**:`&&` 是从左到右结合的,即先计算左边的表达式,再计算右边的表达式。 ### 短路求值的优势 - **性能优化**:由于 `&&` 在遇到第一个 `false` 条件会停止计算,因此可以用来优化性能。例如,可以将耗较长的条件放在 `&&` 的最后,以确保只有在其他条件都满足才会执行。 - **安全检查**:`&&` 可以用来确保某些操作仅在特定条件下执行。例如: ```javascript function doSomething() { console.log("Doing something..."); } let flag = true; flag && doSomething(); // 如果 flag 为 true,则调用 doSomething() ``` ### 总结 逻辑运算符 `&&` 是编程中非常重要的工具,它不仅用于判断多个条件是否同成立,还因其短路特性而在性能优化和安全性检查中发挥重要作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值