2025最新!JS運(yùn)算符,一定有你不知道的!
Hello,大家好,我是 Sunday。
最近看到一些同學(xué)有提到幾個(gè)比較特殊的運(yùn)算符,比如:??=、?.、?: 等等。
其實(shí)在 JS 中提供的運(yùn)算符是非常多的,除了以上說(shuō)到的幾個(gè)之外,還有很多特殊的運(yùn)算符。這些運(yùn)算符可以幫助我們更靈活、簡(jiǎn)潔地編寫代碼。
所以,咱們今天就一起來(lái)看看 JS 中的特殊運(yùn)算符,從基礎(chǔ)到特殊,全方位了解它們的用法和實(shí)際應(yīng)用場(chǎng)景!
1. 空值合并運(yùn)算符 (??)
空值合并運(yùn)算符 ?? 用于當(dāng)左側(cè)值為 null 或 undefined 時(shí),返回右側(cè)的值。這在需要設(shè)置默認(rèn)值時(shí)非常方便。
示例:
let name = null;
let displayName = name ?? "Anonymous"; // 如果 name 是 null/undefined,則為 "Anonymous"
這個(gè)運(yùn)算符能夠幫助我們避免 null 或 undefined 導(dǎo)致的錯(cuò)誤,常用于設(shè)置默認(rèn)值。
2. 可選鏈運(yùn)算符 (?.)
可選鏈運(yùn)算符 ?. 可以安全地訪問(wèn)嵌套屬性,避免在屬性不存在時(shí)拋出錯(cuò)誤。
示例:
let user = { name: "Alice" };
console.log(user?.address?.city); // 輸出 undefined 而不是拋出錯(cuò)誤
這個(gè)運(yùn)算符非常適合在 API 返回?cái)?shù)據(jù)不完整、嵌套對(duì)象結(jié)構(gòu)不固定的場(chǎng)景下使用。
3. 邏輯賦值運(yùn)算符 (||=, &&=, ??=)
邏輯賦值運(yùn)算符是一組可以在特定條件下賦值的運(yùn)算符,包括 ||=, &&= 和 ??=。
示例:
let x = 0;
x ||= 10; // 當(dāng) x 是假值時(shí)賦值為 10
x &&= 5; // 當(dāng) x 是真值時(shí)賦值為 5
x ??= 1; // 當(dāng) x 是 null 或 undefined 時(shí)賦值為 1
這些運(yùn)算符可以讓代碼更加簡(jiǎn)潔,尤其是在條件賦值時(shí)非常實(shí)用。
4. 指數(shù)運(yùn)算符 (**)
指數(shù)運(yùn)算符 ** 用于計(jì)算冪值,類似于 Math.pow()。
示例:
let result = 2 ** 3; // 2 的 3 次冪,結(jié)果是 8
5. 三元運(yùn)算符 (?:)
三元運(yùn)算符 ?: 是一種簡(jiǎn)潔的條件語(yǔ)句,適合在簡(jiǎn)單條件判斷時(shí)使用。
示例:
let isActive = true;
let status = isActive ? "Active" : "Inactive"; // 根據(jù) isActive 的值選擇不同的狀態(tài)
三元運(yùn)算符可以讓代碼更緊湊,但在條件較復(fù)雜時(shí),建議還是使用 if 語(yǔ)句來(lái)保持代碼的可讀性。
6. 逗號(hào)運(yùn)算符 (,)
逗號(hào)運(yùn)算符允許我們?cè)谝恍兄袌?zhí)行多個(gè)表達(dá)式,最終返回最后一個(gè)表達(dá)式的值。
示例:
let x = (1 + 2, 3 + 4); // 最終 x 為 7
7. void 運(yùn)算符 (void)
void 運(yùn)算符可以執(zhí)行表達(dá)式并返回 undefined。常用于立即執(zhí)行函數(shù)表達(dá)式(IIFE)中。
示例:
void function sayHello() { console.log("Hello"); }(); // 輸出 "Hello",返回 undefined
8. 類型運(yùn)算符
- typeof:返回?cái)?shù)據(jù)類型。
console.log(typeof "Hello"); // 輸出 "string"
- instanceof:檢查對(duì)象是否為某個(gè)構(gòu)造函數(shù)的實(shí)例。
console.log([] instanceof Array); // 輸出 true
9. 展開運(yùn)算符 (...)
展開運(yùn)算符 ... 用于將數(shù)組或?qū)ο蟮乃性卣归_,方便合并和復(fù)制。
示例:
let arr1 = [1, 2];
let arr2 = [...arr1, 3, 4]; // 合并數(shù)組
let obj = { ...{ a: 1 }, b: 2 }; // 合并對(duì)象
10. 解構(gòu)賦值
解構(gòu)賦值可以從數(shù)組或?qū)ο笾刑崛≈蒂x給變量,簡(jiǎn)化賦值操作。
示例:
let [a, b] = [1, 2];
let { x, y } = { x: 10, y: 20 };
11. 位運(yùn)算符
位運(yùn)算符主要用于按位操作,包括 &、|、^、~、<<、>>、>>> 等。常用于優(yōu)化性能或特定算法。
示例:
let result = 5 & 1; // 按位與運(yùn)算,結(jié)果是 1
12. new 運(yùn)算符
new 運(yùn)算符用于創(chuàng)建對(duì)象實(shí)例,是 JavaScript 面向?qū)ο缶幊讨械幕A(chǔ)。
示例:
let date = new Date(); // 創(chuàng)建 Date 實(shí)例
13. delete 運(yùn)算符
delete 用于刪除對(duì)象的屬性,刪除成功會(huì)返回 true。
示例:
let obj = { a: 1, b: 2 };
delete obj.a; // 刪除屬性 a
14. in 運(yùn)算符
in 運(yùn)算符檢查對(duì)象是否包含某個(gè)屬性,返回布爾值。
示例:
let obj = { a: 1 };
console.log("a" in obj); // 輸出 true