JavaScript 運算符詳解

引言

在 JavaScript 編程中,運算符是用于對數據進行操作的特殊符號。通過使用運算符,我們可以實現各種計算、比較和邏輯判斷等功能。JavaScript 中的運算符種類豐富,涵蓋了算術、比較、邏輯、賦值等多個方面。下面將詳細介紹各類運算符及其使用方法,并結合代碼示例進行說明。

一、算術運算符

算術運算符主要用于執行基本的數學運算,如加、減、乘、除等。

1. 加法運算符(+

加法運算符既可以用于數字相加,也可以用于字符串拼接。

// 數字相加
let num1 = 5;
let num2 = 3;
let sum = num1 + num2;
console.log(sum); // 輸出: 8// 字符串拼接
let str1 = 'Hello';
let str2 = ' World';
let combinedStr = str1 + str2;
console.log(combinedStr); // 輸出: Hello World

2. 減法運算符(-

減法運算符用于計算兩個數字的差值。

let num3 = 10;
let num4 = 4;
let difference = num3 - num4;
console.log(difference); // 輸出: 6

3. 乘法運算符(*

乘法運算符用于計算兩個數字的乘積。

let num5 = 6;
let num6 = 2;
let product = num5 * num6;
console.log(product); // 輸出: 12

4. 除法運算符(/

除法運算符用于計算兩個數字的商。

let num7 = 15;
let num8 = 3;
let quotient = num7 / num8;
console.log(quotient); // 輸出: 5

5. 取余運算符(%

取余運算符用于計算兩個數字相除后的余數。

let num9 = 10;
let num10 = 3;
let remainder = num9 % num10;
console.log(remainder); // 輸出: 1

6. 自增運算符(++

自增運算符用于將變量的值加 1,分為前置自增和后置自增。

let num11 = 5;
// 前置自增
let preIncrement = ++num11;
console.log(preIncrement); // 輸出: 6
console.log(num11); // 輸出: 6let num12 = 5;
// 后置自增
let postIncrement = num12++;
console.log(postIncrement); // 輸出: 5
console.log(num12); // 輸出: 6

7. 自減運算符(--

自減運算符用于將變量的值減 1,同樣分為前置自減和后置自減。

let num13 = 8;
// 前置自減
let preDecrement = --num13;
console.log(preDecrement); // 輸出: 7
console.log(num13); // 輸出: 7let num14 = 8;
// 后置自減
let postDecrement = num14--;
console.log(postDecrement); // 輸出: 8
console.log(num14); // 輸出: 7

二、比較運算符

比較運算符用于比較兩個值的大小關系,返回一個布爾值(truefalse)。

1. 等于運算符(==

等于運算符比較兩個值是否相等,會進行類型轉換。

let a = 5;
let b = '5';
console.log(a == b); // 輸出: true

2. 嚴格等于運算符(===

嚴格等于運算符比較兩個值是否相等,且要求類型也相同。

let c = 5;
let d = '5';
console.log(c === d); // 輸出: false

3. 不等于運算符(!=

不等于運算符比較兩個值是否不相等,會進行類型轉換。

let e = 5;
let f = '6';
console.log(e != f); // 輸出: true

4. 嚴格不等于運算符(!==

嚴格不等于運算符比較兩個值是否不相等,且要求類型也不同。

let g = 5;
let h = '5';
console.log(g !== h); // 輸出: true

5. 大于運算符(>

大于運算符比較左邊的值是否大于右邊的值。

let i = 10;
let j = 5;
console.log(i > j); // 輸出: true

6. 小于運算符(<

小于運算符比較左邊的值是否小于右邊的值。

let k = 3;
let l = 8;
console.log(k < l); // 輸出: true

7. 大于等于運算符(>=

大于等于運算符比較左邊的值是否大于或等于右邊的值。

let m = 5;
let n = 5;
console.log(m >= n); // 輸出: true

8. 小于等于運算符(<=

小于等于運算符比較左邊的值是否小于或等于右邊的值。

let o = 2;
let p = 4;
console.log(o <= p); // 輸出: true

三、邏輯運算符

邏輯運算符用于組合多個布爾值,進行邏輯判斷。

1. 邏輯與運算符(&&

邏輯與運算符只有當兩個操作數都為 true 時,結果才為 true

let isTrue1 = true;
let isTrue2 = true;
let isFalse = false;
console.log(isTrue1 && isTrue2); // 輸出: true
console.log(isTrue1 && isFalse); // 輸出: false

2. 邏輯或運算符(||

邏輯或運算符只要有一個操作數為 true,結果就為 true

console.log(isTrue1 || isFalse); // 輸出: true
console.log(isFalse || isFalse); // 輸出: false

3. 邏輯非運算符(!

邏輯非運算符用于取反操作,將 true 變為 false,將 false 變為 true

console.log(!isTrue1); // 輸出: false
console.log(!isFalse); // 輸出: true

四、賦值運算符

賦值運算符用于將一個值賦給一個變量。

1. 基本賦值運算符(=

基本賦值運算符將右邊的值賦給左邊的變量。

let x = 10;
console.log(x); // 輸出: 10

2. 復合賦值運算符

復合賦值運算符結合了算術運算和賦值操作。

let y = 5;
// 加法賦值
y += 3; // 相當于 y = y + 3
console.log(y); // 輸出: 8let z = 10;
// 減法賦值
z -= 4; // 相當于 z = z - 4
console.log(z); // 輸出: 6let w = 2;
// 乘法賦值
w *= 5; // 相當于 w = w * 5
console.log(w); // 輸出: 10let u = 12;
// 除法賦值
u /= 3; // 相當于 u = u / 3
console.log(u); // 輸出: 4let v = 15;
// 取余賦值
v %= 4; // 相當于 v = v % 4
console.log(v); // 輸出: 3

五、位運算符

位運算符用于對整數的二進制位進行操作。

1. 按位與運算符(&

按位與運算符對兩個操作數的對應二進制位進行與運算。

let num15 = 5; // 二進制: 0101
let num16 = 3; // 二進制: 0011
let bitwiseAnd = num15 & num16; // 二進制: 0001
console.log(bitwiseAnd); // 輸出: 1

2. 按位或運算符(|

按位或運算符對兩個操作數的對應二進制位進行或運算。

let bitwiseOr = num15 | num16; // 二進制: 0111
console.log(bitwiseOr); // 輸出: 7

3. 按位異或運算符(^

按位異或運算符對兩個操作數的對應二進制位進行異或運算。

let bitwiseXor = num15 ^ num16; // 二進制: 0110
console.log(bitwiseXor); // 輸出: 6

4. 按位取反運算符(~

按位取反運算符對操作數的每一個二進制位取反。

let num17 = 5; // 二進制: 0101
let bitwiseNot = ~num17; // 二進制: 1010(補碼形式)
console.log(bitwiseNot); // 輸出: -6

5. 左移運算符(<<

左移運算符將操作數的二進制位向左移動指定的位數。

let num18 = 5; // 二進制: 0101
let leftShift = num18 << 2; // 二進制: 010100
console.log(leftShift); // 輸出: 20

6. 右移運算符(>>

右移運算符將操作數的二進制位向右移動指定的位數,符號位保持不變。

let num19 = 20; // 二進制: 010100
let rightShift = num19 >> 2; // 二進制: 000101
console.log(rightShift); // 輸出: 5

7. 無符號右移運算符(>>>

無符號右移運算符將操作數的二進制位向右移動指定的位數,左邊補 0。

let num20 = -20; 
let unsignedRightShift = num20 >>> 2; 
console.log(unsignedRightShift); 

六、條件運算符(三元運算符)

條件運算符是 JavaScript 中唯一的三元運算符,用于根據條件的真假返回不同的值。

let age = 18;
let message = age >= 18 ? '成年人' : '未成年人';
console.log(message); // 輸出: 成年人

七、逗號運算符

逗號運算符用于在一條語句中執行多個表達式,并返回最后一個表達式的值。

let result = (1 + 2, 3 + 4, 5 + 6);
console.log(result); // 輸出: 11

八、typeof 運算符

typeof 運算符用于返回一個表示數據類型的字符串。

let num21 = 10;
let str3 = 'hello';
let bool3 = true;
console.log(typeof num21); // 輸出: number
console.log(typeof str3); // 輸出: string
console.log(typeof bool3); // 輸出: boolean

總結

JavaScript 中的運算符豐富多樣,每種運算符都有其特定的用途和功能。掌握這些運算符的使用方法,能夠幫助我們更高效地編寫代碼,實現各種復雜的功能。在實際開發中,要根據具體的需求選擇合適的運算符,并注意運算符的優先級和結合性,以避免出現錯誤。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73205.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73205.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73205.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于javaweb的SpringBoot個人健康管理系統小程序微信小程序設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

責任鏈模式的C++實現示例

核心思想 責任鏈模式是一種行為設計模式&#xff0c;允許多個對象都有機會處理請求&#xff0c;從而避免請求的發送者與接收者之間的耦合。請求沿著處理鏈傳遞&#xff0c;直到某個對象處理它為止。 解決的問題 ?解耦請求發送者與處理者&#xff1a;請求的發送者無需知道具…

Java 無 GUI 瀏覽器:HtmlUnit 入門及實戰 [特殊字符]

文章目錄 HtmlUnit 入門功能簡介入門案例更多功能HtmlUnit 實戰需求頁面分析編碼參考? 本文目標: HtmlUnit 框架入門HtmlUnit 框架實戰:實現 HtmlUnit 訪問 Web 頁面,并實現 Web 頁面按鈕點擊,同時獲取到下載的文件。HtmlUnit 入門 ?? 官網:https://htmlunit.sourcefo…

微軟 NativeAOT

微軟Native AOT&#xff08;Ahead-Of-Time&#xff09;是.NET平臺中一種新的運行模式&#xff0c;它直接將IL&#xff08;Intermediate Language&#xff0c;中間語言&#xff09;代碼編譯為目標平臺的機器碼發布&#xff0c;與JIT&#xff08;Just-In-Time&#xff0c;即時編譯…

Vue項目搜索引擎優化(SEO)終極指南:從原理到實戰

文章目錄 1. SEO基礎與Vue項目的挑戰1.1 為什么Vue項目需要特殊SEO處理&#xff1f;1.2 搜索引擎爬蟲工作原理 2. 服務端渲染&#xff08;SSR&#xff09;解決方案2.1 Nuxt.js框架實戰原理代碼實現流程圖 2.2 自定義SSR實現 3. 靜態站點生成&#xff08;SSG&#xff09;技術3.1…

Java 枚舉

一、簡介 Java 枚舉是一種強大的工具&#xff0c;其本質上是一個繼承自 java.lang.Enum 的類&#xff0c;用于定義一組固定的常量&#xff0c;每個枚舉常量都是該枚舉類的一個實例。枚舉不僅提供了類型安全性&#xff0c;還可以像普通類一樣擁有字段、方法和構造函數。枚舉的使…

CentOS7安裝DNS服務器bind

文章目錄 安裝DNS服務設置配置文件自定義域名解析完整配置 需求是公司內網服務器無法連接外網&#xff0c;需要在本地搭建DNS服務&#xff0c;這樣物理機器遷移到內網后&#xff0c;通過域名解析訪問服務 DNS服務器 172.25.14.215 ip域名172.25.14.216mysql.server172.25.14.2…

DFS刷題(25.3.13)

題目1——烤雞 題目描述 題解 這是一個簡單的暴搜題目&#xff0c;由于一共由10種配料&#xff0c;每種配料可以放1到3克&#xff0c;因此只需要用dfs對每種配料放入的質量進行暴力搜索即可&#xff0c;如果放入的配料質量之和等于題目給出的美味程度 n n n&#xff0c;記錄一…

C#中除了Dictionary,List,HashSet,HashTable 還有哪些可以保存列表的數據類型?

在 C# 中&#xff0c;除了 Dictionary、List、HashSet 和 Hashtable 之外&#xff0c;還有許多其他可以保存列表或集合類型的數據結構&#xff0c;具體包括以下幾類&#xff1a; &#x1f4cc; 數組類 1. Array&#xff08;數組&#xff09; 固定長度&#xff0c;性能高&…

《Python實戰進階》第21集:數據存儲:Redis 與 MongoDB 的使用場景

第21集&#xff1a;數據存儲&#xff1a;Redis 與 MongoDB 的使用場景 摘要 在現代應用開發中&#xff0c;數據存儲的選擇直接影響系統的性能、擴展性和成本。Redis 和 MongoDB 是兩種極具代表性的數據庫技術&#xff0c;它們分別擅長解決不同場景下的問題。本文將深入探討 Re…

三視圖轉stl導出 空心面片體 networkx shapely triangle numpy-stl

from shapely.geometry import Polygon import triangle from shapely.ops import unary_union from stl import mesh import numpy as np from collections import defaultdict from 三維投影線段尋找 import get_adjusted_clusters,get_clusters,get_intersect_lines import …

大摩閉門會:250312 學習總結報告

如果圖片分辨率不足&#xff0c;可右鍵圖片在新標簽打開圖片或者下載末尾源文件進行查看 本文只是針對視頻做相應學術記錄&#xff0c;進行學習討論使用

【51單片機】程序實驗15.DS18B20溫度傳感器

主要參考學習資料&#xff1a;B站【普中官方】51單片機手把手教學視頻 開發資料下載鏈接&#xff1a;http://www.prechin.cn/gongsixinwen/208.html 單片機套裝&#xff1a;普中STC51單片機開發板A4標準版套餐7 目錄 DS18B20介紹主要特性內部結構控制時序初始化時序寫時序讀時序…

ESP32芯片模組方案,設備物聯網無線通信,WiFi藍牙交互控制應用

在當下&#xff0c;物聯網正以前所未有的速度席卷全球&#xff0c;從繁華都市的智能建筑&#xff0c;到寧靜鄉村的智慧農業&#xff0c;從人們日常使用的可穿戴設備&#xff0c;到工業領域復雜精密的自動化生產線&#xff0c;物聯網的觸角已深入到生活與生產的每一個角落。 而…

Linux第二次練習

1.首先在根下面創建一個名為text的目錄 2.在根目錄下新建一個text目錄&#xff0c;然后在text目錄中新建上圖的一級目錄、二級目錄以及三級目錄 3.顯示/text目錄下文件的樹形拓撲圖 4.將linux樹狀結構圖中列出的所有文件用ll命令列出來

百雞問題-

百雞問題 #include<stdio.h> int main(){int n;scanf("%d",&n);int x,y,z;for(x0;x<100;x){for(y0;y<100;y){for(z0;z<100;z){if((x*15y*9z)<(3*n) && ((xyz)100)){printf("x%d,y%d,z%d\n",x,y,z);}}}}return 0; }

LVDS(Low Voltage Differential Signaling)電平詳解

一、LVDS的定義與核心特性 LVDS&#xff08;低壓差分信號&#xff09;是一種 低功耗、高速、抗干擾 的差分信號傳輸技術&#xff0c;通過一對互補的電壓信號&#xff08;正負端差值&#xff09;傳遞數據。其核心特性包括&#xff1a; 電氣特性 電壓擺幅&#xff1a;差分電壓約…

【OpenFeign 面試專題】

OpenFeign 面試專題 OpenFeign 的核心原理OpenFeign 如何與 Ribbon、Hystrix 集成Ribbon的負載均衡策略如何自定義 OpenFeign 的請求編碼和響應解碼OpenFeign 如何傳遞請求頭&#xff08;Header&#xff09;信息OpenFeign 如何處理超時和重試OpenFeign 支持哪些 HTTP 客戶端實現…

Adobe Acrobat Pro setting

防火墻斷網組織彈窗 Adobe軟件突然彈窗“THIS APP HAS BEEN DISABLED”&#xff1f;別慌&#xff0c;幾步教你輕松解決&#xff01; 禁用代理 解決Adobe出現This unlicensed Photoshop app has been disabled.禁止使用 rules:- DOMAIN-KEYWORD,adobe,REJECT

搜索插入位置(js實現,LeetCode:35)

給定一個排序數組和一個目標值&#xff0c;在數組中找到目標值&#xff0c;并返回其索引。如果目標值不存在于數組中&#xff0c;返回它將會被按順序插入的位置。 請必須使用時間復雜度為 O(log n) 的算法。 示例 1: 輸入: nums [1,3,5,6], target 5 輸出: 2示例 2: 輸入…