当前位置: 首页 > news >正文

JS - 运算符


一、算术运算符

用于执行数学运算。

运算符

描述

示例

结果

+

加法

5 + 3

8

-

减法

5 - 3

2

*

乘法

5 * 3

15

/

除法

15 / 3

5

%

取模(余数)

10 % 3

1

**

指数(幂)

2 ** 3

8

++

自增(前/后)

let a=5; a++

6

--

自减(前/后)

let a=5; a--

4

​注意:自增/自减的前后区别​

let a = 5;
console.log(a++); // 5(先返回值,后自增)
console.log(a);   // 6let b = 5;
console.log(++b); // 6(先自增,后返回值)
console.log(b);   // 6

二、赋值运算符

用于给变量赋值。

运算符

示例

等价于

=

x = 10

x = 10

+=

x += 5

x = x + 5

-=

x -= 5

x = x - 5

*=

x *= 5

x = x * 5

/=

x /= 5

x = x / 5

%=

x %= 5

x = x % 5

let x = 10;
x += 5; // x = 10 + 5 = 15
x *= 2; // x = 15 * 2 = 30
console.log(x); // 30

三、比较运算符

用于比较两个值,返回布尔值(truefalse)。

运算符

描述

示例

结果

==

相等(值相等)

5 == "5"

true

===

​严格相等​​(值和类型都相等)

5 === "5"

false

!=

不相等

5 != "5"

false

!==

​严格不相等​

5 !== "5"

true

>

大于

5 > 3

true

<

小于

5 < 3

false

>=

大于等于

5 >= 5

true

<=

小于等于

5 <= 3

false

​重要建议:始终使用 ===!==​,避免类型转换带来的意外结果。


四、逻辑运算符

用于组合或操作布尔值。

运算符

描述

示例

结果

&&

逻辑与(AND)

true && false

false

`

`

逻辑或(OR)

!

逻辑非(NOT)

!true

false

??

空值合并(ES2020)

null ?? "default"

"default"

​短路求值(重要特性)​​:

// && 短路:如果第一个为false,直接返回第一个值,不计算第二个
false && console.log("这行不会执行");// || 短路:如果第一个为true,直接返回第一个值,不计算第二个
true || console.log("这行不会执行");// 实际应用:条件执行
const user = null;
const username = user && user.name; // 如果user为null,直接返回null,不会报错
const displayName = user?.name || "匿名用户"; // 常用模式:提供默认值

五、三元运算符

条件运算符,是 if-else的简写形式。

​语法​​:条件 ? 值1 : 值2

const age = 20;
const status = age >= 18 ? "成年人" : "未成年人";
console.log(status); // "成年人"// 等价于:
let status;
if (age >= 18) {status = "成年人";
} else {status = "未成年人";
}

六、其他重要运算符

1. 类型运算符
typeof "hello"    // "string"
typeof 42        // "number"
typeof true       // "boolean"
typeof undefined  // "undefined"
typeof null       // "object"(历史遗留问题)
typeof []         // "object"
typeof {}         // "object"
typeof function(){} // "function"
2. 空值合并运算符 ??(ES2020)

||类似,但只对 nullundefined生效:

0 || "默认值"      // "默认值"(0被视为false)
0 ?? "默认值"      // 0(0不是null或undefined)"" || "Hello"     // "Hello"(空字符串被视为false)
"" ?? "Hello"     // ""(空字符串不是null或undefined)
3. 可选链运算符 ?.(ES2020)

安全地访问嵌套对象属性:

const user = {profile: {name: "Alice"}
};// 传统方式(需要多次检查)
const name = user && user.profile && user.profile.name;// 使用可选链
const name = user?.profile?.name; // "Alice"// 即使属性不存在也不会报错
const job = user?.profile?.job; // undefined(而不是报错)

七、运算符优先级

当表达式中有多个运算符时,优先级决定了执行顺序(类似于数学中的先乘除后加减)。

​从高到低常见优先级​​:

  1. ()(括号)

  2. ++--(自增/减)

  3. */%

  4. +-

  5. <<=>>=

  6. ==!====!==

  7. &&

  8. ||

  9. =+=-=(赋值)

​最佳实践​​:使用括号 ()明确优先级,避免依赖记忆。

// 模糊的优先级
const result = 5 + 3 * 2; // 11(不是16)// 明确的优先级
const result = (5 + 3) * 2; // 16

总结

掌握这些运算符是JavaScript编程的基础。特别要注意:

  • ​比较运算符​​:优先使用 ===!==

  • ​逻辑运算符​​:理解短路求值的特性

  • ​现代运算符​​:掌握 ???.的使用场景

  • ​优先级​​:不确定时使用括号明确意图

http://www.dtcms.com/a/478367.html

相关文章:

  • Ethical use of recommender systems|推荐系统的道德使用
  • 网站建设 全网推广建网站的域名
  • MySQL——表操作
  • 基于MATLAB的海图快速临近值插值地图构建方法
  • 深度解析“rgss102e.dll丢失”问题:原因、影响与完整解决指南
  • 正规的媒体发稿网有哪些
  • 知名的汽车媒体发稿有哪些
  • 乐昌市建设网站网站开发就业薪酬
  • 【前缀和】| LeetCode 1314题解 矩阵区域和
  • 深圳网站建设服务便宜wordpress 获取导航
  • UniApp 实现双语功能
  • 保定哪做网站好云南云桥建设股份有限公司官方网站
  • xss-labs靶场安装+通关(1)
  • 3002. 移除后集合的最多元素数
  • 深圳的网站建设公司的外文名是南阳专业做网站公司哪家好
  • 电脑卡顿?快速解决CPU占用率过高问题
  • 免费制作网站net域名儿童网站开发方面外文文献
  • 自定义网络协议与序列化/反序列化
  • 如何给网站做第三方流量监测海珠高端网站建设
  • 守好电网的“最后一公里”:配电台区综合在线监控系统
  • 从零部署 Astro 静态网站到云服务器(含 HTTPS 一键配置)
  • 重生之我在大学自学鸿蒙开发第二天-《MVVM模式》
  • Sequence Encoder-based Spatio temporal Knowledge Graph Completion
  • 学习笔记:Vue Router 中的链接匹配机制与样式控制
  • 做彩票网站电话多少钱网站在线建设
  • 网站建设入什么费用站规划在网站建设中的作用
  • c语言-流程控制语句
  • for和while循环,continue和break的用法
  • Redis-持久化之RDB
  • 网站宣传海报科技狂人