溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript中的邏輯運算符有哪些

發布時間:2021-12-08 16:39:48 來源:億速云 閱讀:159 作者:iii 欄目:web開發
# 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');   // ''

2. 邏輯或(||)

  • 語法expr1 || expr2
  • 特性
    • expr1true時立即返回expr1
    • 只有expr1false時才求值expr2
  • 真值表: | expr1 | expr2 | 結果 | |——-|——-|——-| | false | true | true | | false | false | false | | true | - | true |
const defaultValue = userInput || 'default';

3. 邏輯非(!)

  • 語法!expr
  • 特性
    • 始終返回布爾值
    • 對操作數執行ToBoolean轉換
  • 雙重否定技巧
!!'hello' // true

二、ES6新增運算符

1. 空值合并運算符(??)

  • 語法leftExpr ?? rightExpr
  • 特殊行為
    • 僅當leftExprnullundefined時返回rightExpr
    • ||的區別:
    0 || 1    // 1
    0 ?? 1    // 0
    '' ?? 'default' // ''
    

2. 可選鏈運算符(?.)

  • 語法obj?.prop
  • 安全訪問機制
    
    const street = user?.address?.street;
    // 等價于
    const street = user && user.address && user.address.street;
    

三、運算符優先級

JavaScript邏輯運算符的優先級從高到低為:

  1. !(邏輯非)
  2. &&(邏輯與)
  3. ||(邏輯或)
  4. ??(空值合并)
  5. ?.(可選鏈)
true || false && false // 先計算&&
a ?? b || c            // 語法錯誤,需加括號

四、短路求值特性

所有邏輯運算符都具有短路特性:

function validate() {
  console.log('Validating...');
  return true;
}

false && validate() // 不會執行validate
true || validate()  // 不會執行validate

五、實際應用場景

1. 條件執行

isLoggedIn && renderDashboard();

2. 默認值設置

const config = userConfig ?? defaultConfig;

3. 安全訪問嵌套屬性

const price = product?.inventory?.price ?? 0;

4. 表單驗證

function isValid(form) {
  return form.name && 
         (form.email || form.phone) && 
         !form.errors?.length;
}

六、注意事項

  1. 類型轉換陷阱

    '0' && 1 // 1 (truthy)
    0 && 1   // 0 (falsy)
    
  2. 與位運算符的區別

    • &|是位運算符,不要混淆
  3. 可選鏈的邊界情況

    obj?.prop           // 屬性訪問
    arr?.[0]            // 數組訪問
    func?.(args)        // 函數調用
    

掌握這些邏輯運算符的細微差別,將顯著提升你的JavaScript編碼效率和代碼質量。 “`

這篇文章通過Markdown格式呈現,包含: - 清晰的層級結構(H2-H3標題) - 代碼塊示例 - 真值表可視化 - 實際應用場景 - 注意事項提醒 - 精確的字數控制(約950字) - 覆蓋了基礎運算符和ES6新增運算符 - 強調了運算符優先級和短路特性等關鍵知識點

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女