JavaScript 运算符
JavaScript 运算符(Operators) 是用于执行操作的符号,可以用于不同的数据类型(如数字、字符串、布尔值等)。JavaScript 提供了多种运算符,用于处理数据并返回结果。运算符可以分为多种类型,以下是最常见的几类:
1. 算术运算符(Arithmetic Operators)
用于执行数学运算。
- 加法(
+):将两个操作数相加。 - 减法(
-):从第一个操作数中减去第二个操作数。 - 乘法(
*):将两个操作数相乘。 - 除法(
/):将第一个操作数除以第二个操作数。 - 取余(
%):返回第一个操作数除以第二个操作数后的余数。 - 幂(
**):返回第一个操作数的第二个操作数次方。
let x = 10, y = 5;
console.log(x + y); // 输出: 15
console.log(x - y); // 输出: 5
console.log(x * y); // 输出: 50
console.log(x / y); // 输出: 2
console.log(x % y); // 输出: 0
console.log(x ** y); // 输出: 100000
2. 赋值运算符(Assignment Operators)
用于给变量赋值。
- 赋值(
=):将右侧的值赋给左侧的变量。 - 加法赋值(
+=):将右侧的值加到左侧的变量并赋值给左侧。 - 减法赋值(
-=):将右侧的值从左侧的变量中减去并赋值给左侧。 - 乘法赋值(
*=):将右侧的值乘到左侧的变量并赋值给左侧。 - 除法赋值(
/=):将左侧的变量除以右侧的值并赋值给左侧。 - 取余赋值(
%=):将左侧的变量与右侧的值取余并赋值给左侧。
let x = 10;
x += 5; // 相当于 x = x + 5
console.log(x); // 输出: 15
x *= 2; // 相当于 x = x * 2
console.log(x); // 输出: 30
3. 比较运算符(Comparison Operators)
用于比较两个值,并返回一个布尔值(true 或 false)。
- 等于(
==):判断两个值是否相等(不考虑类型)。 - 严格等于(
===):判断两个值是否严格相等(考虑类型)。 - 不等于(
!=):判断两个值是否不相等(不考虑类型)。 - 严格不等于(
!==):判断两个值是否严格不相等(考虑类型)。 - 大于(
>):判断左侧的值是否大于右侧的值。 - 小于(
<):判断左侧的值是否小于右侧的值。 - 大于等于(
>=):判断左侧的值是否大于或等于右侧的值。 - 小于等于(
<=):判断左侧的值是否小于或等于右侧的值。
let x = 10, y = 5;
console.log(x == y); // 输出: false
console.log(x === '10'); // 输出: false
console.log(x != y); // 输出: true
console.log(x > y); // 输出: true
console.log(x <= y); // 输出: false
4. 逻辑运算符(Logical Operators)
用于连接多个条件表达式。
- 与(
&&):只有两个操作数都为true,结果才为true。 - 或(
||):只要有一个操作数为true,结果就为true。 - 非(
!):将操作数的布尔值取反。
let x = true, y = false;
console.log(x && y); // 输出: false
console.log(x || y); // 输出: true
console.log(!x); // 输出: false
5. 条件运算符(三元运算符)
用于根据条件选择两个值之一。语法为:
condition ? expr1 : expr2
如果 condition 为 true,返回 expr1,否则返回 expr2。
let age = 18;
let result = age >= 18 ? "Adult" : "Minor";
console.log(result); // 输出: Adult
6. 类型运算符(Type Operators)
- typeof:返回一个表示数据类型的字符串。
let x = 42;
console.log(typeof x); // 输出: number
- instanceof:检查一个对象是否是某个类的实例。
let arr = [1, 2, 3];
console.log(arr instanceof Array); // 输出: true
7. 位运算符(Bitwise Operators)
位运算符用于对整数的二进制位进行操作。
- 按位与(
&):对两个数的每一位进行与运算。 - 按位或(
|):对两个数的每一位进行或运算。 - 按位异或(
^):对两个数的每一位进行异或运算。 - 按位取反(
~):对数值的每一位进行取反操作。 - 左移(
<<):将数字的所有位向左移动指定的位数。 - 右移(
>>):将数字的所有位向右移动指定的位数。 - 无符号右移(
>>>):将数字的所有位向右移动指定的位数,并在左边补充 0。
let x = 5, y = 3;
console.log(x & y); // 输出: 1 (0101 & 0011 = 0001)
console.log(x | y); // 输出: 7 (0101 | 0011 = 0111)
console.log(x ^ y); // 输出: 6 (0101 ^ 0011 = 0110)
8. 空值合并运算符(Nullish Coalescing Operator)
?? 是一个新的运算符,用于返回其左侧操作数的值,当左侧为 null 或 undefined 时,返回右侧的操作数。
let x = null;
let result = x ?? 'Default';
console.log(result); // 输出: Default
9. 解构赋值运算符(Destructuring Assignment)
用于从数组或对象中提取值,并将其赋给变量。
a. 数组解构
let arr = [1, 2, 3];
let [a, b] = arr;
console.log(a); // 输出: 1
console.log(b); // 输出: 2
b. 对象解构
let obj = { name: "Alice", age: 25 };
let { name, age } = obj;
console.log(name); // 输出: Alice
console.log(age); // 输出: 25
总结
JavaScript 提供了多种运算符来操作数据,包括算术运算、比较运算、逻辑运算、赋值运算等。掌握这些运算符能帮助你更高效地处理数据和实现各种逻辑。