2025最新!JS运算符全解析,一定有你不知道!

开发 前端
其实在 JS 中提供的运算符是非常多的,除了以上说到的几个之外,还有很多特殊的运算符。这些运算符可以帮助我们更灵活、简洁地编写代码。

Hello,大家好,我是 Sunday。

最近看到一些同学有提到几个比较特殊的运算符,比如:??=、?.、?: 等等。

其实在 JS 中提供的运算符是非常多的,除了以上说到的几个之外,还有很多特殊的运算符。这些运算符可以帮助我们更灵活、简洁地编写代码。

所以,咱们今天就一起来看看 JS 中的特殊运算符,从基础到特殊,全方位了解它们的用法和实际应用场景!

1. 空值合并运算符 (??)

空值合并运算符 ?? 用于当左侧值为 null 或 undefined 时,返回右侧的值。这在需要设置默认值时非常方便。

示例:

let name = null;
let displayName = name ?? "Anonymous";  // 如果 name 是 null/undefined,则为 "Anonymous"

这个运算符能够帮助我们避免 null 或 undefined 导致的错误,常用于设置默认值。

2. 可选链运算符 (?.)

可选链运算符 ?. 可以安全地访问嵌套属性,避免在属性不存在时抛出错误。

示例:

let user = { name: "Alice" };
console.log(user?.address?.city);  // 输出 undefined 而不是抛出错误

这个运算符非常适合在 API 返回数据不完整、嵌套对象结构不固定的场景下使用。

3. 逻辑赋值运算符 (||=, &&=, ??=)

逻辑赋值运算符是一组可以在特定条件下赋值的运算符,包括 ||=, &&= 和 ??=。

示例:

let x = 0;
x ||= 10;  // 当 x 是假值时赋值为 10
x &&= 5;   // 当 x 是真值时赋值为 5
x ??= 1;   // 当 x 是 null 或 undefined 时赋值为 1

这些运算符可以让代码更加简洁,尤其是在条件赋值时非常实用。

4. 指数运算符 (**)

指数运算符 ** 用于计算幂值,类似于 Math.pow()。

示例:

let result = 2 ** 3;  // 2 的 3 次幂,结果是 8

5. 三元运算符 (?:)

三元运算符 ?: 是一种简洁的条件语句,适合在简单条件判断时使用。

示例:

let isActive = true;
let status = isActive ? "Active" : "Inactive";  // 根据 isActive 的值选择不同的状态

三元运算符可以让代码更紧凑,但在条件较复杂时,建议还是使用 if 语句来保持代码的可读性。

6. 逗号运算符 (,)

逗号运算符允许我们在一行中执行多个表达式,最终返回最后一个表达式的值。

示例:

let x = (1 + 2, 3 + 4);  // 最终 x 为 7

7. void 运算符 (void)

void 运算符可以执行表达式并返回 undefined。常用于立即执行函数表达式(IIFE)中。

示例:

void function sayHello() { console.log("Hello"); }();  // 输出 "Hello",返回 undefined

8. 类型运算符

  • typeof:返回数据类型。
console.log(typeof "Hello");  // 输出 "string"
  • instanceof:检查对象是否为某个构造函数的实例。
console.log([] instanceof Array);  // 输出 true

9. 展开运算符 (...)

展开运算符 ... 用于将数组或对象的所有元素展开,方便合并和复制。

示例:

let arr1 = [1, 2];
let arr2 = [...arr1, 3, 4];  // 合并数组
let obj = { ...{ a: 1 }, b: 2 };  // 合并对象

10. 解构赋值

解构赋值可以从数组或对象中提取值赋给变量,简化赋值操作。

示例:

let [a, b] = [1, 2];
let { x, y } = { x: 10, y: 20 };

11. 位运算符

位运算符主要用于按位操作,包括 &、|、^、~、<<、>>、>>> 等。常用于优化性能或特定算法。

示例:

let result = 5 & 1;  // 按位与运算,结果是 1

12. new 运算符

new 运算符用于创建对象实例,是 JavaScript 面向对象编程中的基础。

示例:

let date = new Date();  // 创建 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

责任编辑:武晓燕 来源: 程序员Sunday
相关推荐

2024-10-21 17:46:54

前端开发

2020-10-15 17:35:22

PandasPython开发

2011-08-10 23:28:49

打印机常见问题

2020-04-27 10:34:23

HTTPDNSDNS网络协议

2021-12-29 11:38:59

JS前端沙箱

2023-11-30 08:32:31

OpenFeign工具

2021-11-16 08:51:29

Node JavaScript变量类型

2020-07-29 07:37:20

Git 修复项目

2023-11-15 08:22:42

Java开发小技巧

2015-10-21 11:09:08

Xcode7调试神技

2020-12-14 07:51:16

JS 技巧虚值

2024-02-05 11:55:41

Next.js开发URL

2020-07-28 08:26:34

WebSocket浏览器

2020-06-12 09:20:33

前端Blob字符串

2022-05-30 08:18:35

门面模式子系统对象

2022-10-13 11:48:37

Web共享机制操作系统

2021-02-01 23:23:39

FiddlerCharlesWeb

2011-09-15 17:10:41

2009-12-10 09:37:43

2010-08-23 09:56:09

Java性能监控
点赞
收藏

51CTO技术栈公众号