JavaScript 中的操作符用于执行各种操作,如数学运算、比较、逻辑运算等。操作符可以分为多种类型,下面详细介绍这些操作符及其用法。
1. 算术操作符(Arithmetic Operators)
这些操作符用于执行数学运算。
- 加法 (
+
):用于两个值相加。let sum = 5 + 3; // 8
- 减法 (
-
):用于两个值相减。let difference = 5 - 3; // 2
- 乘法 (
*
):用于两个值相乘。let product = 5 * 3; // 15
- 除法 (
/
):用于两个值相除。let quotient = 6 / 3; // 2
- 取余 (
%
):返回两个值相除的余数。let remainder = 5 % 3; // 2
- 递增 (
++
):将变量的值增加 1。let a = 5; a++; // a = 6
- 递减 (
--
):将变量的值减少 1。let b = 5; b--; // b = 4
2. 赋值操作符(Assignment Operators)
这些操作符用于将值赋给变量。
- 赋值 (
=
):将右边的值赋给左边的变量。javascript复制代码let x = 10;
- 加赋值 (
+=
):将右边的值加到左边的变量上,然后赋值给左边的变量。let x = 10; x += 5; // x = 15
- 减赋值 (
-=
):将右边的值从左边的变量中减去,然后赋值给左边的变量。let x = 10; x -= 5; // x = 5
- 乘赋值 (
*=
):将左边的变量乘以右边的值,然后赋值给左边的变量。let x = 10; x *= 5; // x = 50
- 除赋值 (
/=
):将左边的变量除以右边的值,然后赋值给左边的变量。let x = 10; x /= 5; // x = 2
- 取余赋值 (
%=
):将左边的变量取余右边的值,然后赋值给左边的变量。let x = 10; x %= 3; // x = 1
3. 比较操作符(Comparison Operators)
这些操作符用于比较两个值并返回布尔值 true
或 false
。
- 等于 (
==
):检查两个值是否相等(类型转换)。let result = (5 == '5'); // true
- 全等于 (
===
):检查两个值是否相等且类型相同。let result = (5 === '5'); // false
- 不等于 (
!=
):检查两个值是否不相等(类型转换)。let result = (5 != '5'); // false
- 不全等于 (
!==
):检查两个值是否不相等或类型不同。let result = (5 !== '5'); // true
- 大于 (
>
):检查左边的值是否大于右边的值。let result = (5 > 3); // true
- 小于 (
<
):检查左边的值是否小于右边的值。let result = (5 < 3); // false
- 大于等于 (
>=
):检查左边的值是否大于或等于右边的值。let result = (5 >= 5); // true
- 小于等于 (
<=
):检查左边的值是否小于或等于右边的值。let result = (5 <= 3); // false
4. 逻辑操作符(Logical Operators)
这些操作符用于执行逻辑运算。
- 与 (
&&
):如果两个操作数都为true
,则结果为true
。let result = (true && false); // false
- 或 (
||
):如果两个操作数中至少有一个为true
,则结果为true
。let result = (true || false); // true
- 非 (
!
):对操作数取反,如果操作数为true
,则结果为false
,反之亦然。let result = !true; // false
5. 位操作符(Bitwise Operators)
这些操作符用于对整数进行按位操作。
- 按位与 (
&
):对两个操作数的每一位执行按位与运算。let result = 5 & 3; // 1 (0101 & 0011 = 0001)
- 按位或 (
|
):对两个操作数的每一位执行按位或运算。let result = 5 | 3; // 7 (0101 | 0011 = 0111)
- 按位异或 (
^
):对两个操作数的每一位执行按位异或运算。let result = 5 ^ 3; // 6 (0101 ^ 0011 = 0110)
- 按位非 (
~
):对操作数的每一位执行按位非运算。let result = ~5; // -6 (按位取反)
- 左移 (
<<
):将操作数的二进制位向左移动指定的位数。let result = 5 << 1; // 10 (0101 << 1 = 1010)
- 右移 (
>>
):将操作数的二进制位向右移动指定的位数。let result = 5 >> 1; // 2 (0101 >> 1 = 0010)
- 无符号右移 (
>>>
):将操作数的二进制位向右移动指定的位数,结果不考虑符号位。let result = -5 >>> 1; // 2147483642 (无符号右移)
6. 条件(三元)操作符(Conditional (Ternary) Operator)
条件操作符用于根据条件选择两个值中的一个。语法为 condition ? expr1 : expr2
。
示例:
let age = 18;
let isAdult = (age >= 18) ? 'Adult' : 'Minor'; // 'Adult'
7. 类型操作符(Type Operators)
- typeof:用于获取变量的类型。
let type = typeof 42; // "number"
- instanceof:用于检查对象是否是某个构造函数的实例。
let date = new Date(); let isDate = date instanceof Date; // true
8. 其他操作符
- 逗号操作符(
,
):用于在一个表达式中执行多个操作。let x = (1, 2, 3); // 3 (逗号操作符返回最后一个值)
- 解构赋值(Destructuring Assignment):用于从数组或对象中提取多个值。
let [a, b] = [1, 2]; // a = 1, b = 2 let { x, y } = { x: 10, y: 20 }; // x = 10, y = 20
总结
JavaScript 中的操作符为各种数据操作提供了工具,从数学运算到逻辑判断再到位操作。理解这些操作符及其用法对于编写有效的 JavaScript 代码至关重要。