与(&&)或(||)运算 js

本文深入解析逻辑或(||)与逻辑与(&&;)运算符的工作原理,通过实例展示其在不同情况下的运算结果,帮助读者理解并掌握逻辑运算的基础知识。

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

逻辑或(||)
表达式1 || 表达式2

表达式1表达式2结果
101值
111值
012值
002值

可以这样辅助记忆: 或运算,1真取1值,1假取2值

逻辑与(&&)
表达式1 && 表达式2

表达式1表达式2结果
102值
112值
011值
001值

可以这样辅助记忆: 与运算,1真取2值,1假取1值

在这里插入图片描述

### JavaScript 中逻辑运算符 `&&` 和 `||` 的优先级 在 JavaScript 中,逻辑 (`&&`)运算优先级确实高于逻辑 (`||`)。这意味着如果在一个表达式中同时存在 `&&` 和 `||`,则会先计算 `&&` 表达式的部分[^1]。 #### 示例代码展示优先级 以下是几个例子来验证这一规则: ```javascript // 示例 1: 结合 && 和 || console.log((true && false) || true); // 输出 true console.log(true && false || true); // 输出 true,因为 && 先被计算 // 示例 2: 更复杂的组合 console.log(false || true && false); // 输出 false,因为 && 优先于 || console.log((false || true) && false); // 输出 false,强制改变优先级 ``` #### 关于短路行为的说明 无论是 `&&` 还是 `||`,它们都遵循短路求值的原则。对于 `&&` 来说,一旦遇到左侧为假值,则不会继续评估右侧;而对于 `||`,只要左侧为真值就会跳过右侧[^3]。 - **逻辑 (`&&`)**:从左至右依次判断每个操作数是否为真值,直到发现第一个假值为止并立即返回它。 - **逻辑 (`||`)**:同样是从左向右扫描各操作数,但是一旦碰到首个真值即刻终止后续检测过程,并将其作为整个表达式的结果予以反馈。 这种特性不仅影响性能优化还可能改变程序的行为模式因此理解清楚非常重要[^4]。 另外值得注意的是虽然 !(取反)具有更高的优先级别但是这并不意味着它可以随意嵌套使用而不考虑其他因素的影响所以实际编码过程中还是应该谨慎对待多重否定情况以免引起不必要的困惑者错误[^5]。 ### 练习建议 为了更好地掌握这两个运算符及其相互作用关系可以通过下面这些题目来进行实践巩固所学知识点: 1. 计算下列各式最终得到什么结果? ```javascript let resultA = ('hello' && '') || 'world'; let resultB = (null || undefined) && NaN; ``` 2. 下面这段脚本运行之后变量x,y,z分别是什么样的状态呢? ```javascript const obj = { prop: null }; const x = obj.prop && typeof obj.prop === 'string'; const y = (!obj.prop || Array.isArray(obj)) ? [] : {}; const z = (({}).toString.call(y) === '[object Array]'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值