# 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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。