您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# JavaScript中的逻辑运算符有哪些
JavaScript作为一门动态编程语言,逻辑运算符是其核心语法的重要组成部分。这些运算符不仅用于条件判断,还在现代JavaScript开发中扮演着关键角色。本文将全面介绍JavaScript中的五种逻辑运算符及其进阶用法。
## 一、基础逻辑运算符
### 1. 逻辑与(&&)
- **语法**:`expr1 && expr2`
- **特性**:
- 当`expr1`可转换为`true`时,返回`expr2`
- 当`expr1`可转换为`false`时,返回`expr1`
- **真值表**:
| expr1 | expr2 | 结果 |
|-------|-------|-------|
| true | true | true |
| true | false | false |
| false | - | false |
```javascript
console.log(5 > 3 && 2 < 4); // true
console.log('' && 'Hello'); // ''
expr1 || expr2
expr1
为true
时立即返回expr1
expr1
为false
时才求值expr2
const defaultValue = userInput || 'default';
!expr
!!'hello' // true
leftExpr ?? rightExpr
leftExpr
为null
或undefined
时返回rightExpr
||
的区别:0 || 1 // 1
0 ?? 1 // 0
'' ?? 'default' // ''
obj?.prop
const street = user?.address?.street;
// 等价于
const street = user && user.address && user.address.street;
JavaScript逻辑运算符的优先级从高到低为:
!
(逻辑非)&&
(逻辑与)||
(逻辑或)??
(空值合并)?.
(可选链)true || false && false // 先计算&&
a ?? b || c // 语法错误,需加括号
所有逻辑运算符都具有短路特性:
function validate() {
console.log('Validating...');
return true;
}
false && validate() // 不会执行validate
true || validate() // 不会执行validate
isLoggedIn && renderDashboard();
const config = userConfig ?? defaultConfig;
const price = product?.inventory?.price ?? 0;
function isValid(form) {
return form.name &&
(form.email || form.phone) &&
!form.errors?.length;
}
类型转换陷阱:
'0' && 1 // 1 (truthy)
0 && 1 // 0 (falsy)
与位运算符的区别:
&
和|
是位运算符,不要混淆可选链的边界情况:
obj?.prop // 属性访问
arr?.[0] // 数组访问
func?.(args) // 函数调用
掌握这些逻辑运算符的细微差别,将显著提升你的JavaScript编码效率和代码质量。 “`
这篇文章通过Markdown格式呈现,包含: - 清晰的层级结构(H2-H3标题) - 代码块示例 - 真值表可视化 - 实际应用场景 - 注意事项提醒 - 精确的字数控制(约950字) - 覆盖了基础运算符和ES6新增运算符 - 强调了运算符优先级和短路特性等关键知识点
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。