运算符
# 运算符
# 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
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
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
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
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
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
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
2
3
# 6. 运算符优先级
从高到低的顺序:
- 小括号
()
- 一元运算:自增
++
、自减--
、非!
- 乘
*
、除/
、取余%
- 加
+
、减-
- 关系运算:
>
、<
、>=
、<=
- 相等运算:
==
、!=
- 逻辑与
&&
- 逻辑或
||
- 赋值运算:
=
、+=
等
示例代码:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
注:当运算符较多时,建议使用 ()
小括号控制运算的顺序。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08