JS學習筆記#4 | 運算子與運算符

閱讀時間約 9 分鐘

在 JavaScript 中,邏輯運算子和比較運算子是用於條件判斷的重要工具。它們常被用來進行邏輯運算和比較數值或變數,進一步決定程式的執行流程。

1.算術運算子 (Arithmetic Operators)

用來執行數學運算,如加法、減法等。

  • + (加法):將兩個數字相加,或將字串連接起來。
    console.log(5 + 3); // 輸出: 8
    console.log("Hello " + "World"); // 輸出: "Hello World"
  • - (減法):將兩個數字相減。
    console.log(10 - 5); // 輸出: 5
  • * (乘法):將兩個數字相乘。
    console.log(4 * 2); // 輸出: 8
  • / (除法):將一個數字除以另一個數字。
    console.log(10 / 2); // 輸出: 5
  • % (取餘數):返回兩個數字相除後的餘數。
    console.log(10 % 3); // 輸出: 1
  • ++ (遞增):將變數的值增加 1。
    let x = 5;
    x++;
    console.log(x); // 輸出: 6
  • -- (遞減):將變數的值減少 1。
    let y = 5;
    y--;
    console.log(y); // 輸出: 4


2.賦值運算子 (Assignment Operators)

用於給變數賦值。

  • =:簡單賦值,將右側的值賦予左側的變數。
    let x = 10; // 將 10 賦值給 x
  • +=:加法賦值,將右側的值與左側變數相加,並賦值給左側變數。
    let x = 5;

    x += 3; // 等同於 x = x + 3; x 現在是 8
  • -=:減法賦值,將右側的值從左側變數減去,並賦值給左側變數。
    let x = 5;

    x -= 2; // 等同於 x = x - 2; x 現在是 3
  • *=:乘法賦值,將右側的值與左側變數相乘,並賦值給左側變數。
    let x = 5;

    x *= 2; // 等同於 x = x * 2; x 現在是 10
  • /=:除法賦值,將左側變數除以右側的值,並賦值給左側變數。
    let x = 10;

    x /= 2; // 等同於 x = x / 2; x 現在是 5
  • %=:取餘數賦值,將左側變數對右側的值取餘數,並賦值給左側變數。
    let x = 10;

    x %= 3; // 等同於 x = x % 3; x 現在是 1
  • **=:指數賦值,將左側變數的值提升到右側的值次方,並賦值給左側變數。
    let x = 2;

    x **= 3; // 等同於 x = x ** 3; x 現在是 8


3.比較運算子 (Comparison Operators)

用於比較兩個值,返回布林值 (truefalse)。

  • == (等於):比較兩個值是否相等(不比較資料型態)。
    console.log(5 == "5"); // 輸出: true
  • === (全等於):比較兩個值及其型態是否完全相等。
    console.log(5 === "5"); // 輸出: false
  • != (不等於):比較兩個值是否不相等(不比較資料型態)。
    console.log(5 != "5"); // 輸出: false
  • !== (不全等於):比較兩個值及其型態是否不相等。
    console.log(5 !== "5"); // 輸出: true
  • > (大於):判斷左邊的值是否大於右邊的值。
    console.log(10 > 5); // 輸出: true
  • < (小於):判斷左邊的值是否小於右邊的值。
    console.log(5 < 10); // 輸出: true
  • >= (大於或等於):判斷左邊的值是否大於或等於右邊的值。
    console.log(5 >= 5); // 輸出: true
  • <= (小於或等於):判斷左邊的值是否小於或等於右邊的值。
    console.log(5 <= 10); // 輸出: true


4.邏輯運算子 (Logical Operators)

用於組合多個布林值或比較結果,返回布林值。

  • && (AND):若兩個條件都為 true,則返回 true,否則返回 false
    console.log(true && false); // false
    console.log(10 > 5 && 5 < 10); // 輸出: true
  • || (OR):若任一條件為 true,則返回 true,只有當所有條件都為 false 時才返回 false
    console.log(true || false); // true
    console.log(10 > 5 || 5 > 10); // 輸出: true
  • ! (NOT):反轉布林值,true 變成 falsefalse 變成 true
    console.log(!true); // false
    console.log(!false); // 輸出: true


5.位元運算子( Bitwise Operators )

位元運算子用於操作二進位數字。將數字轉換為二進位(0 和 1),然後逐位執行運算。位元運算在底層開發和效能優化中很有用,常見於系統編程、加密演算法、圖像處理等領域。它們能夠提高某些運算的效率,特別是在處理大量數據時。

  • & (Bitwise AND)
    將兩個數字的每一位進行 AND 運算,只有當兩位都是 1 時,結果才為 1。
    let a = 5;  // 二進位: 0101
    let b = 3; // 二進位: 0011
    console.log(a & b); // 輸出: 1 (二進位: 0001)
  • | (Bitwise OR)
    將兩個數字的每一位進行 OR 運算,只要有一位為 1,結果就是 1。
    let a = 5;  // 二進位: 0101
    let b = 3; // 二進位: 0011
    console.log(a | b); // 輸出: 7 (二進位: 0111)
  • ^ (Bitwise XOR)
    將兩個數字的每一位進行 XOR 運算,當兩位不同時,結果為 1;相同時,結果為 0。
    let a = 5;  // 二進位: 0101
    let b = 3; // 二進位: 0011
    console.log(a ^ b); // 輸出: 6 (二進位: 0110)
  • ~ (Bitwise NOT)
    對每一位執行 NOT 運算,將 0 變成 1,1 變成 0。注意,這會對結果進行補碼運算(即變成負數)。
    let a = 5;  // 二進位: 0101
    console.log(~a); // 輸出: -6 (補碼運算)
  • << (Left Shift)
    將數字的位元向左移動,右邊補 0。每移動一位,相當於乘以 2。
    let a = 5;  // 二進位: 0101
    console.log(a << 1); // 輸出: 10 (二進位: 1010)
  • >> (Sign-propagating Right Shift)
    將數字的位元向右移動,保留符號位(正負號),左邊補上符號位的值(0 或 1)。
    let a = -5;  // 二進位: 11111111111111111111111111111011 (32-bit 表示)
    console.log(a >> 1); // 輸出: -3 (二進位: 11111111111111111111111111111101)
  • >>> (Zero-fill Right Shift)
    將數字的位元向右移動,左邊補 0。這種運算不會保留符號位,適合無符號位元操作。
    let a = -5;  // 二進位: 11111111111111111111111111111011 (32-bit 表示)
    console.log(a >>> 1); // 輸出: 2147483645 (二進位: 01111111111111111111111111111101)


avatar-img
0會員
9內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
koko的沙龍 的其他內容
在 JavaScript 中,字串(String)是一個不可變的原生資料型態,用來存放並處理文字。JavaScript 提供多種方法和屬性來操作和格式化字串。理解這些屬性與方法,能讓我們更靈活地處理文字資料,特別是在處理用戶輸入、顯示訊息或處理 API 回傳的資料時非常有用。
在 JavaScript 中,資料型態分為「原生值(primitive values)」和「物件(objects)」。原生值包括String、Number、Boolean、Null、Undefined、Symbol和 BigInt。物件則是包括Array和 Function等結構。
在 JavaScript 中,變數是一個儲存值的容器,可用於管理和操作資料。變數可以透過 let、const 和 var 進行宣告。選擇適當的變數宣告方式是確保程式碼可讀性和可維護性的關鍵。
在 JavaScript 中,字串(String)是一個不可變的原生資料型態,用來存放並處理文字。JavaScript 提供多種方法和屬性來操作和格式化字串。理解這些屬性與方法,能讓我們更靈活地處理文字資料,特別是在處理用戶輸入、顯示訊息或處理 API 回傳的資料時非常有用。
在 JavaScript 中,資料型態分為「原生值(primitive values)」和「物件(objects)」。原生值包括String、Number、Boolean、Null、Undefined、Symbol和 BigInt。物件則是包括Array和 Function等結構。
在 JavaScript 中,變數是一個儲存值的容器,可用於管理和操作資料。變數可以透過 let、const 和 var 進行宣告。選擇適當的變數宣告方式是確保程式碼可讀性和可維護性的關鍵。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
這篇內容,將會講解什麼是運算子,以及與運算子相關的知識。包括運算子的簡介、賦值運算子、算術運算子、遞增/遞減、比較運算子、邏輯運算子。
Thumbnail
本章節的目的是介紹Java中的運算符,包括算數運算符、比較運算符、賦值運算符、位元運算符以及運算符的優先等級。通過本章節,讀者可以了解到如何在Java中進行基本的數學運算、比較兩個值的大小、將值賦給變數、進行位元運算,以及在複雜表達式中如何正確地理解運算符的優先等級。
Thumbnail
此章節旨在介紹TypeScript中的運算符,包括算數運算子、比較運算子、賦值運算子、位元運算子,以及他們的優先等級。每種運算子都以清晰的解釋和代碼範例進行詳細說明,幫助讀者理解並有效地在自己的程式碼中使用。
Thumbnail
解決電腦上遇到的問題、證明正確性、探討效率 並且很著重溝通,說服別人你做的事是正確且有效率的。 內容: 計算模型、資料結構介紹、演算法介紹、時間複雜度介紹。
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
這篇內容,將會講解什麼是運算子,以及與運算子相關的知識。包括運算子的簡介、賦值運算子、算術運算子、遞增/遞減、比較運算子、邏輯運算子。
Thumbnail
本章節的目的是介紹Java中的運算符,包括算數運算符、比較運算符、賦值運算符、位元運算符以及運算符的優先等級。通過本章節,讀者可以了解到如何在Java中進行基本的數學運算、比較兩個值的大小、將值賦給變數、進行位元運算,以及在複雜表達式中如何正確地理解運算符的優先等級。
Thumbnail
此章節旨在介紹TypeScript中的運算符,包括算數運算子、比較運算子、賦值運算子、位元運算子,以及他們的優先等級。每種運算子都以清晰的解釋和代碼範例進行詳細說明,幫助讀者理解並有效地在自己的程式碼中使用。
Thumbnail
解決電腦上遇到的問題、證明正確性、探討效率 並且很著重溝通,說服別人你做的事是正確且有效率的。 內容: 計算模型、資料結構介紹、演算法介紹、時間複雜度介紹。
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。