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