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

JavaScript学习笔记(六):运算符

JavaScript提供了多种运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符等。下面我们将逐步介绍这些运算符。


1. 算术运算符

算术运算符用于执行数学运算。

运算符描述示例
+加法1 + 2 = 3
-减法5 - 3 = 2
*乘法2 * 3 = 6
/除法10 / 2 = 5
%取模(余数)10 % 3 = 1
**指数(幂)2 ** 3 = 8
++递增let a=1; a++; // a=2
--递减let b=3; b--; // b=2

注意:递增和递减运算符可以前置或后置,位置不同会导致行为差异:

  • 前置:先增减,再返回值。
  • 后置:先返回值,再增减。

示例:

let x = 5;
let y = x++; // y = 5, x = 6let a = 5;
let b = ++a; // b = 6, a = 6

2. 赋值运算符

赋值运算符用于给变量赋值,并可以结合其他运算符进行复合赋值。

运算符示例等价于
=x = 5x = 5
+=x += 3x = x + 3
-=x -= 3x = x - 3
*=x *= 3x = x * 3
/=x /= 3x = x / 3
%=x %= 3x = x % 3
**=x **= 3x = x ** 3

3. 比较运算符

比较运算符用于比较两个值,并返回一个布尔值(truefalse)。

运算符描述示例
==等于(值相等)5 == '5' 为 true
===严格等于(值和类型都相等)5 === '5' 为 false
!=不等于5 != '5' 为 false
!==严格不等于5 !== '5' 为 true
>大于10 > 5 为 true
<小于10 < 5 为 false
>=大于等于10 >= 10 为 true
<=小于等于10 <= 5 为 false

注意:建议使用严格相等(===)和严格不相等(!==),因为它们不会进行类型转换,更安全。


4. 逻辑运算符

逻辑运算符用于组合或操作布尔表达式。

运算符描述示例
&&逻辑与true && false 为 false
``
!逻辑非!true 为 false

逻辑运算符也支持短路求值:

  • &&:如果第一个操作数为假,则不会计算第二个操作数。
  • ||:如果第一个操作数为真,则不会计算第二个操作数。

示例:

let a = 10;
let b = (a > 5) && (a < 15); // truelet c = 0;
let d = c || 10; // d = 10,因为c为0(假值),所以返回10

5. 条件(三元)运算符

条件运算符是JavaScript中唯一需要三个操作数的运算符。语法为:

条件 ? 表达式1 : 表达式2

如果条件为真,则返回表达式1的值;否则返回表达式2的值。

示例:

let age = 18;
let status = (age >= 18) ? '成年' : '未成年'; // status = '成年'

6. 其他运算符

  • 类型运算符typeof 返回变量的类型,instanceof 检查对象是否为特定类的实例。
  • 位运算符:如 &|~^<<>> 等,用于直接操作二进制位(较少使用)。

注意事项

  • 运算符优先级:当表达式中有多个运算符时,优先级高的先执行。例如,乘法优先级高于加法。可以使用括号改变优先级。
  • 结合性:运算符从左到右或从右到左结合。

示例:优先级

let result = 10 + 5 * 2; // 5*2先计算,然后加10,结果为20
let result2 = (10 + 5) * 2; // 先计算括号内,15*2=30


总结

掌握运算符是JavaScript编程的基础,合理使用可提升代码效率和可读性。

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

相关文章:

  • Jenkins运维之路(制品上传)
  • 20届-高级开发(华为oD)-Java面经
  • 光流估计(可用于目标跟踪)
  • CANoe仿真报文CRC与Counter的完整实现指南:多种方法详解
  • sward入门到实战(4) - 如何编写Markdown文档
  • S32K146-LPUART+DMA方案实现
  • 【架构设计与优化】大模型多GPU协同方案:推理与微调场景下的硬件连接策略
  • 软件的安装python编程基础
  • Linux系统与运维
  • [Maven 基础课程]基于 IDEA 进行 Maven 构建
  • 一个基于 .NET 开源、简易、轻量级的进销存管理系统
  • 基于Flowlet的ARS(自适应路由切换)技术在RoCE网络负载均衡中的应用与优势
  • 计算机网络实验[番外篇]:MobaXterm连接Centos9的配置
  • Go语言实战案例-项目实战篇:实现一个词频分析系统
  • Grok 4 Fast vs GPT-5-mini:新一代高效AI模型开发者选型指南
  • LeetCode:47.从前序和中序遍历序列构造二叉树
  • MySQL安装避坑指南:从环境适配到故障修复的全场景实战手册
  • React教程(React入门教程)(React组件、JSX、React Props、React State、React事件处理、Hooks、高阶组件HOC)
  • 2025年CSP-S初赛真题及答案解析(完善程序第1题)
  • 六、页面优化
  • CVAT部署到虚拟机小记
  • scss基础学习
  • 基于衍射神经网络的光学高速粒子分类系统A1(未做完)
  • ffprobe安装与简单使用
  • close函数就像“关门“操作,用于关闭文件描述符释放系统资源
  • PyTorch 神经网络工具箱学习笔记
  • Qt常用控件之QWidget(三)
  • apache poi excel 单元格换行
  • 全能视频下载器-下载自媒体平台视频 v1.5.5 专业版
  • 状态模式指南:对象状态变化的优雅管理