程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • HTML

  • CSS

  • JavaScript

    • 简介和用法
    • 变量和数据类型
    • 运算符
      • 1. 算术运算符
        • 1.1 用法
        • 1.2 NaN
        • 1.3 Math对象
      • 2. 关系运算符
      • 3. 赋值运算符
      • 4. 逻辑运算符
      • 5. 条件运算符
      • 6. 运算符优先级
    • 数据类型转换
    • 选择结构
    • 循环结构
    • 数组
    • 数组遍历
    • 函数
    • Debug调试
    • DOM
    • 事件处理
    • BOM(浏览器对象模型)
    • 自定义对象
    • 原型 (Prototype)
    • 内置对象
    • 客户端存储
    • 模块加载方案
  • 前端三剑客
  • JavaScript
scholar
2024-07-19
目录

运算符

# 运算符

# 1. 算术运算符

# 1.1 用法

运算符 含义
+ 加
- 减
* 乘
/ 除
% 取余,求模
** 次方
++ 自增,对原值加1
-- 自减,对原值减1

示例代码:

var a = 5;
var b = 2;

console.log(a + b); // 输出 7
console.log(a - b); // 输出 3
console.log(a * b); // 输出 10
console.log(a / b); // 输出 2.5
console.log(a % b); // 输出 1
console.log(a ** b); // 输出 25

// 自增自减
a++;
console.log(a); // 输出 6

b--;
console.log(b); // 输出 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

前缀自增自减和后缀自增自减的区别:

  • 前缀自增自减

    先进行自增或自减运算,然后再执行表达式。

    var x = 5;
    var y = ++x; // x 先自增,x 变为 6,然后 y 赋值为 6
    console.log(x, y); // 输出 6 6
    
    1
    2
    3
  • 后缀自增自减

    先执行表达式,然后再进行自增或自减运算。

    var x = 5;
    var y = x++; // y 先赋值为 5,然后 x 自增,x 变为 6
    console.log(x, y); // 输出 6 5
    
    1
    2
    3

# 1.2 NaN

NaN (Not a Number) 表示非数字,其自身是number类型。

作用:用来表示数值的一种不正常的状态,一般在计算出错时会出现。

使用isNaN()检查参数是否为非数字:

  • 如果是非数字,则返回true。
  • 如果不是非数字(即是数字),则返回false。

示例代码:

console.log(NaN); // 输出 NaN
console.log(typeof NaN); // 输出 "number"

console.log(isNaN(123)); // 输出 false
console.log(isNaN("Hello")); // 输出 true
console.log(isNaN(NaN)); // 输出 true
1
2
3
4
5
6

# 1.3 Math对象

执行常见的算术任务,用法:Math.方法名(参数)。

常用方法:

console.log(Math.abs(-5));    // 输出 5,得到绝对值
console.log(Math.pow(2, 3));  // 输出 8,2 的 3 次方
console.log(Math.round(4.6)); // 输出 5,四舍五入
console.log(Math.ceil(4.1));  // 输出 5,向上取整
console.log(Math.floor(4.9)); // 输出 4,向下取整
console.log(Math.random());   // 输出 0 到 1 之间的随机数
console.log(Math.max(1, 3, 2)); // 输出 3,返回最大值
console.log(Math.min(1, 3, 2)); // 输出 1,返回最小值
console.log(Math.PI);         // 输出 3.141592653589793,返回圆周率π
1
2
3
4
5
6
7
8
9

# 2. 关系运算符

也称为比较运算符,用来做比较运算,比较的结果是boolean类型。

运算符 含义
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于:只判断数据的内容,不判断数据的类型
=== 全等于:既判断内容,也判断类型
!= 不等于:只判断数据的内容,如果内容一样,则返回false
!== 不全等:如果内容或类型两者中有一个不一样,则返回true,否则返回false

示例代码:

console.log(5 > 3); // 输出 true
console.log(5 < 3); // 输出 false
console.log(5 >= 5); // 输出 true
console.log(5 <= 3); // 输出 false
console.log(5 == "5"); // 输出 true,仅判断值
console.log(5 === "5"); // 输出 false,判断值和类型
console.log(5 != "5"); // 输出 false,仅判断值
console.log(5 !== "5"); // 输出 true,判断值和类型
1
2
3
4
5
6
7
8

# 3. 赋值运算符

运算符 含义
= 简单赋值
+= 加法赋值
-= 减法赋值
*= 乘法赋值
/= 除法赋值
%= 求模赋值

示例代码:

var a = 10;
a += 5; // 相当于 a = a + 5
console.log(a); // 输出 15

a -= 3; // 相当于 a = a - 3
console.log(a); // 输出 12

a *= 2; // 相当于 a = a * 2
console.log(a); // 输出 24

a /= 4; // 相当于 a = a / 4
console.log(a); // 输出 6

a %= 5; // 相当于 a = a % 5
console.log(a); // 输出 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 4. 逻辑运算符

运算符 含义
&& 逻辑与,并且
|| 逻辑或,或者
! 逻辑非,取反

逻辑中断,也称为短路运算:

  • || 如果第一个为真就返回第一个表达式,否则返回第二个表达式。
  • && 如果第一个为假就返回第一个表达式,否则返回第二个表达式。

示例代码:

var a = true;
var b = false;

console.log(a && b); // 输出 false,只有两个操作数都为真才返回真
console.log(a || b); // 输出 true,只要有一个操作数为真就返回真
console.log(!a); // 输出 false,取反

// 逻辑中断
console.log(a || (b = true)); // 输出 true,b 的值不会改变,因为 a 已经为真
console.log(b); // 输出 false,验证 b 的值没有改变

console.log(a && (b = true)); // 输出 true,b 的值会改变,因为 a 为真
console.log(b); // 输出 true,验证 b 的值改变了
1
2
3
4
5
6
7
8
9
10
11
12
13

# 5. 条件运算符

也称为三目运算符,语法:条件 ? 表达式1 : 表达式2

当条件为true时执行表达式1,当条件为false时执行表达式2。

示例代码:

var age = 18;
var canVote = (age >= 18) ? "可以投票" : "不可以投票";
console.log(canVote); // 输出 "可以投票"
1
2
3

# 6. 运算符优先级

从高到低的顺序:

  1. 小括号 ()
  2. 一元运算:自增 ++、自减 --、非 !
  3. 乘 *、除 /、取余 %
  4. 加 +、减 -
  5. 关系运算:>、<、>=、<=
  6. 相等运算:==、!=
  7. 逻辑与 &&
  8. 逻辑或 ||
  9. 赋值运算:=、+= 等

示例代码:

var a = 5;
var b = 10;
var c = 15;

var result = a + b * c; // 计算顺序:乘法优先,b * c,然后加法,a + (b * c)
console.log(result); // 输出 155

result = (a + b) * c; // 计算顺序:小括号优先,a + b,然后乘法,(a + b) * c
console.log(result); // 输出 225

result = a + b > c ? a : b; // 计算顺序:关系运算优先,a + b > c,然后条件运算符
console.log(result); // 输出 5

result = a + b > c && b < c; // 计算顺序:关系运算优先,然后逻辑与运算
console.log(result); // 输出 true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

注:当运算符较多时,建议使用 () 小括号控制运算的顺序。

编辑此页 (opens new window)
上次更新: 2025/01/25, 22:32:05
变量和数据类型
数据类型转换

← 变量和数据类型 数据类型转换→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式