以下是原始文本的繁體中文翻譯:

JavaScript - Logical Operators

# JavaScript - 邏輯運算符

你好,未來的JavaScript大師們!今天,我們將踏上一段令人興奮的旅程,進入邏輯運算符的世界。別擔心你對編程還是新手——我會成為你友善的導遊,我們將一步一步地探索這個主題。在本課結束時,你將能夠像專家一樣使用邏輯運算符!

## JavaScript 邏輯運算符

邏輯運算是編程世界的決策者。它們幫助我們做選擇和控制代碼的流程。在JavaScript中,我們有三個主要的邏輯運算符:

| 運算符 | 名稱 | 描述 |
|--------|------|------|
| &&     | AND  | 如果兩個操作數都為true,則返回true |
| \|\|   | OR   | 如果至少一個操作數為true,則返回true |
| !      | NOT  | 反轉其操作數的布爾值 |

讓我們深入這些運算符,看看它們是如何施展魔法的!

## JavaScript 邏輯與(&&)運算符

與運算符(&&)就像一個嚴格的家長——只有當它的兩個操作數都為true時,它才返回true。如果任一操作數為false,結果就是false。

讓我們看一些例子:

```javascript
let isAdult = true;
let hasID = true;

console.log(isAdult && hasID); // 輸出:true

let isTired = true;
let hasCoffee = false;

console.log(isTired && hasCoffee); // 輸出:false

在第一個例子中,isAdulthasID都為true,所以結果是true。這就像說:"如果你是成年人並且有身份證,你就可以進入俱樂部。" 必須滿足兩個條件。

在第二個例子中,即使isTired為true,但hasCoffee為false,所以結果是false。這就像說:"如果我又累又有咖啡,我會有效率。" 但由於沒有咖啡,所以生產力不會發生!

JavaScript 邏輯或(||)運算符

或運算符(||)則更加寬容——如果至少有一個操作數為true,它就返回true。只有當兩個操作數都為false時,它才返回false。

這裡有一些例子:

let hasCash = true;
let hasCard = false;

console.log(hasCash || hasCard); // 輸出:true

let isRaining = false;
let isSnowing = false;

console.log(isRaining || isSnowing); // 輸出:false

在第一個例子中,hasCash為true,所以即使hasCard為false,結果也是true。這就像說:"如果你有現金或信用卡,你就可以購買這個物品。" 擁有其中一個就足夠了。

在第二個例子中,isRainingisSnowing都為false,所以結果是false。這就像說:"如果下雨或下雪,我會待在室內。" 但由於兩者都沒有發生,你可以自由地出去!

JavaScript 邏輯非(!)運算符

非運算符(!)是這群人中的反叛者——它會反轉其操作數的布爾值。如果某件事為true,它會使其變為false,反之亦然。

讓我們看看它是如何工作的:

let isSunny = true;

console.log(!isSunny); // 輸出:false

let isMonday = false;

console.log(!isMonday); // 輸出:true

在第一個例子中,isSunny為true,但!isSunny為false。這就像說:"現在不是陽光明媚的。",其實它是。

在第二個例子中,isMonday為false,但!isMonday為true。這就像慶祝:"今天不是星期一!"

邏輯運算符的優先級

就像在數學中一樣,邏輯運算符也有優先級。這是它們的排名:

  1. 非運算符 (!)
  2. 與運算符 (&&)
  3. 或運算符 (||)

這意味著非運算符首先被評估,然後是與運算符,最後是或運算符。讓我們看一個例子:

let a = true;
let b = false;
let c = true;

console.log(a || b && !c); // 輸出:true

這是評估的順序:

  1. 首先評估 !c!true 變成 false
  2. 然後評估 b && falsefalse && falsefalse
  3. 最後評估 a || falsetrue || falsetrue

所以,最終結果是true。

短路評估

短路評估是JavaScript用來優化邏輯操作的一個巧妙技巧。這意味著在某些情況下,JavaScript不需要評估邏輯表達式的所有部分就可以確定結果。

對於與運算符:

console.log(false && anything); // 輸出:false

在這種情況下,JavaScript知道如果第一個操作數是false,整個表達式將為false,所以它甚至不評估 anything

對於或運算符:

console.log(true || anything); // 輸出:true

這裡,JavaScript看到第一個操作數是true,所以它知道整個表達式將為true,無論 anything 是什麼。

這可以非常有用,用於避免錯誤。例如:

let user = null;

console.log(user && user.name); // 輸出:null

如果 user 是null,JavaScript會短路並返回null,而不是嘗試訪問 user.name,這會導致錯誤。

這就是全部,各位!你剛剛完成了JavaScript邏輯運算符的速成課程。記住,這些小符號是你編程工具包中的強大工具。它們幫助你做決策,控制代碼流程,甚至防止錯誤。

在你繼續你的JavaScript旅程時,你會發現自己越來越多地使用這些運算符。不要害怕與它們實驗——這是你可以真正掌握它們的使用方法。快樂編程,願你的邏輯操作總是得出你期望的結果!

Credits: Image by storyset