JavaScript中的运算符
在本文中,我们将解释JavaScript中的运算符。
YouTube Video
JavaScript中的运算符
JavaScript中的运算符是用于对数字或变量进行计算或比较的符号或关键字。运算符有多种类型,每种都执行不同的操作。以下是一些主要运算符的总结:。
算术运算符
JavaScript 的 算术运算符 包括以下内容:。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
+ |
加法 | 5 + 2 |
7 |
- |
减法 | 5 - 2 |
3 |
* |
乘法 | 5 * 2 |
10 |
/ |
除法 | 5 / 2 |
2.5 |
% |
取模(余数) | 5 % 2 |
1 |
++ |
自增(加1) | let x = 5; x++ |
6 |
-- |
自减(减1) | let x = 5; x-- |
4 |
1let a = 10; // Initialize variable 'a' with the value 10
2let b = 3; // Initialize variable 'b' with the value 3
3
4// Perform and display arithmetic operations between 'a' and 'b'
5console.log("Addition (a + b): ", a + b); // 13
6console.log("Subtraction (a - b): ", a - b); // 7
7console.log("Multiplication (a * b):", a * b); // 30
8console.log("Division (a / b): ", a / b); // 3.333...
9console.log("Modulus (a % b): ", a % b); // 1
10
11// Demonstrate post-increment operation on 'a'
12// Output the current value of 'a' (10), then increment
13console.log("Post-increment (a++): ", a++);
14// Display the incremented value of 'a' (11)
15console.log("Value of 'a' after increment:", a);
16
17// Demonstrate pre-increment operation on 'a'
18// Increment 'a' first (12) then output
19console.log("Pre-increment (++a): ", ++a);
20
21// Demonstrate post-decrement operation on 'a'
22// Output the current value of 'a' (12), then decrement
23console.log("Post-decrement (a--): ", a--);
24// Display the decremented value of 'a' (11)
25console.log("Value of 'a' after decrement:", a);
26
27// Demonstrate pre-decrement operation on 'a'
28// Decrement 'a' first (10) then output
29console.log("Pre-decrement (--a): ", --a);算术运算符对数字执行基本的数学操作。除了加法和减法外,还可以执行取模、自增和自减等操作。请注意,自增或自减运算符返回的值取决于运算符是在操作数之前还是之后。
赋值运算符
JavaScript 的 赋值运算符 包括以下内容:。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
= |
赋值 | x = 5 |
x 被赋值为 5 |
+= |
加法赋值 | 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 |
1let x = 10;
2
3x += 5; // x = x + 5, so x becomes 15
4console.log('After x += 5 : ', x); // 15
5
6x -= 10;
7console.log('After x -= 10 : ', x); // 5
8
9x *= 3;
10console.log('After x *= 3 : ', x); // 15
11
12x /= 3;
13console.log('After x /= 3 : ', x); // 5
14
15x %= 2;
16console.log('After x %= 2 : ', x); // 1
赋值运算符用于给变量赋值或更新变量的值。除了常规赋值外,还有用于算术运算(如加法和取模)的赋值运算符。
比较运算符
JavaScript 的 比较运算符 包括以下内容:。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
== |
等于 | 5 == "5" |
true |
=== |
严格等于(类型和值均相等) | 5 === "5" |
false |
!= |
不等于 | 5 != "5" |
false |
!== |
严格不等于 | 5 !== "5" |
true |
> |
大于 | 5 > 2 |
true |
< |
小于 | 5 < 2 |
false |
>= |
大于或等于 | 5 >= 5 |
true |
<= |
小于或等于 | 5 <= 4 |
false |
1console.log("5 == '5' evaluates to:", 5 == "5"); // true (because the values are equal)
2console.log("5 === '5' evaluates to:", 5 === "5"); // false (because the types are different)
3console.log("5 != '5' evaluates to:", 5 != "5"); // false
4console.log("5 !== '5' evaluates to:", 5 !== "5"); // true
5console.log("5 > 2 evaluates to:", 5 > 2); // true
6console.log("5 < 2 evaluates to:", 5 < 2); // false
7console.log("5 >= 5 evaluates to:", 5 >= 5); // true
8console.log("5 <= 4 evaluates to:", 5 <= 4); // false
9console.log("5 >= '5' evaluates to:", 5 >= "5"); // true
10console.log("5 <= '5' evaluates to:", 5 <= "5"); // true
- 比较运算符用于比较值,并返回 true 或 false。
- 等于操作符(
==)在进行比较之前会在必要时自动转换不同的类型。严格等于操作符(===)在比较时不会执行任何类型转换,只有当两个值类型相同且值相等时才返回true。使用严格等于操作符(===)有助于防止由于意外的类型转换引起的错误,因此建议优先使用它。
逻辑运算符
JavaScript 的 逻辑运算符 包括以下内容:。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
&& |
与 (当两个条件均为 true 时为 true) | true && false |
false |
|| |
或 (当任一条件为 true 时为 true) | true || false |
true |
! |
非 (将 true 转为 false,将 false 转为 true) | !true |
false |
1let a = true;
2let b = false;
3
4console.log("a && b evaluates to:", a && b); // false
5console.log("a || b evaluates to:", a || b); // true
6console.log("!a evaluates to:", !a); // false
逻辑运算符用于在有多个条件时,对条件的组合进行求值。
逻辑运算符的优先级
在 JavaScript 中,逻辑运算符通常按照 NOT 先执行,然后是 AND,最后是 OR 的顺序进行评估。
NOT 的优先级最高
NOT 是一元运算符,其优先级最高。
1console.log(!true || false); // false
AND 的优先级高于 OR
AND 的优先级高于 OR,因此会优先评估 AND 部分。
1console.log(true || false && false); // true
这样,AND(&&)部分会先被计算,其结果将传递给 OR(||)。
AND 和 OR 执行短路评估
JavaScript 的 AND 和 OR 执行短路评估。如果可以通过左侧值确定结果,则不会评估右侧表达式。
1let a = false && console.log("This will not be printed");
2console.log(a); // false
3
4let b = true || console.log("This will not be printed");
5console.log(b); // true
在任一情况下,console.log() 都不会被执行。
明确设定优先级
通过使用括号明确地对表达式进行分组,可以防止对优先级的误解。
1console.log(true || (false && false)); // true
自然语言与程序解释之间的差异
使用逻辑运算符时,注意自然语言中的歧义是很重要的。例如,说“白狗或猫”时,它可能表示“白狗或任何颜色的猫”,也可能表示“白狗或白猫”。在代码中,它可能会像这样:。
1if (isWhite && isDog || isCat) {
2 console.log(' "A white dog" or "a cat of any color" ');
3}
4
5if (isWhite && (isDog || isCat)) {
6 console.log(' "A white dog" or "a white cat" ');
7}
8
9console.log(true || (false && false)); // true
由于自然语言中存在这样的歧义,编写代码或进行设计时需要注意。
三元运算符(条件运算符)
JavaScript 包含一个 三元运算符(条件运算符)。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
? : |
如果条件为 true,则执行左侧;如果为 false,则执行右侧 | condition ? if true : if false |
根据条件返回结果 |
1let age = 20;
2let message = age >= 18 ? "Adult" : "Minor";
3console.log(message); // "Adult"
它的写法为 条件 ? 为真时的值 : 为假时的值。
位运算符
JavaScript 的 位运算符 包括以下内容。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
& |
AND | 5 & 1 |
1 |
| |
OR | 5 | 1 |
5 |
^ |
XOR | 5 ^ 1 |
4 |
~ |
NOT | ~5 |
-6 |
<< |
左移 | 5 << 1 |
10 |
>> |
右移 | 5 >> 1 |
2 |
1let x = 0x0F & 0x0C;
2console.log("0x0F & 0x0C evaluates to:", x, "(0x0C, 12)"); // 0x0C (12)
3
4x = 0x04 | 0x02;
5console.log("0x04 | 0x02 evaluates to:", x, "(0x06, 6)"); // 0x06 (6)
6
7x = 0x0F ^ 0x0C;
8console.log("0x0F ^ 0x0C evaluates to:", x, "(0x03, 3)"); // 0x03 (3)
9
10// The inverted number is represented as a negative value
11// because JavaScript numbers are stored as signed 32-bit integers.
12x = ~0x0C;
13console.log("~0x0C evaluates to:", x, "(-13, 0xF3)"); // 0xF3 (-13)
14
15x = 0x04 << 1;
16console.log("0x04 << 1 evaluates to:", x, "(0x08, 8)"); // 0x08 (8)
17x = 0x04 >> 1;
18console.log("0x04 >> 1 evaluates to:", x, "(0x02, 2)"); // 0x02 (2)
位运算符在位级别对数字进行计算。它们通常用于底层处理。
类型运算符
JavaScript 的 类型运算符 包括以下内容。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
typeof |
返回变量的类型 | typeof 123 |
"number" |
instanceof |
检查对象是否属于某个特定类 | arr instanceof Array |
true |
1console.log(typeof "Hello"); // "string"
2console.log(typeof 42); // "number"
3
4let arr = [1, 2, 3];
5console.log("arr instanceof Array : ", arr instanceof Array); // true
类型运算符用于检查值的类型或将其转换为特定类型。
typeof 运算符返回变量的类型。
instanceof 运算符检查对象是否属于特定类。
总结
- 算术运算符执行基本计算。
- 赋值运算符为变量赋值或更新值。
- 比较运算符比较两个值并返回true或false。
- 逻辑运算符评估条件的组合。
- 三元运算符允许以比
if更简短的形式编写条件语句。 - 位运算符在位级别执行计算。
- 类型运算符允许检查值的类型。
您可以在我们的YouTube频道上使用Visual Studio Code跟随上述文章进行学习。 请也查看我们的YouTube频道。