JavaScript - 运算符
什么是运算符?
在 JavaScript 中,运算符是一种对一个或多个操作数(例如变量或值)执行运算并返回结果的符号。例如,一个简单的表达式 4 + 5 等于 9。这里,4 和 5 称为操作数,而 + 称为运算符。
JavaScript 支持以下类型的运算符。
- 算术运算符
- 比较运算符
- 逻辑(或关系)运算符
- 位运算符
- 赋值运算符
- 其他运算符
让我们逐一了解所有运算符。
JavaScript 算术运算符
JavaScript 算术运算符用于对数字执行数学计算,例如加法、乘法、减法、除法等。 JavaScript 支持以下算术运算符 -
假设变量 x 的值为 10,变量 y 的值为 20,则 -
| 运算符 | 描述 | 示例 |
|---|---|---|
| +(加法) | 将两个操作数相加。 | x + y 的结果为 30。 |
| -(减法) | 从第一个操作数中减去第二个操作数。 | x - y 的结果为 -10。 |
| *(乘法) | 将两个操作数相乘。 | x * y 的结果为 200。 |
| /(除法) | 用分子除以分母。 | y / x 的结果为 2。 |
| %(模数) | 输出整数除法的余数。 | y % x 的结果为 0 |
| ++ (增量) | 将整数值加一。 | x++ 将得到 11。 |
| -- (减量) | 将整数值减一。 | x-- 将得到 9。 |
加法运算符 (+) 适用于数字和字符串。例如"a" + 10 将得出"a10"。
JavaScript 比较运算符
JavaScript 比较运算符比较两个值并返回布尔值结果(true 或 false)。 JavaScript 支持以下比较运算符 -
假设变量 x 为 10,变量 y 为 20,则 -
| 运算符 | 描述 | 示例 |
|---|---|---|
| ==(相等) | 检查两个操作数的值是否相等。如果是,则条件成立。 | (x == y) 不成立。 |
| !=(不相等) | 检查两个操作数的值是否相等。如果值不相等,则条件成立。 | (x != y) 成立。 |
| ===(严格相等) | 检查变量的值和数据类型是否相等。如果是,则条件成立。 | (x === y) 不成立。 |
| !==(严格不等式) | 检查变量的值和数据类型是否相等。如果值不相等,则条件成立。 | (x !== y) 为真。 |
| >(大于) | 检查左操作数的值是否大于右操作数的值。如果是,则条件成立。 | (x > y) 不成立。 |
| <(小于) | 检查左操作数的值是否小于右操作数的值。如果是,则条件成立。 | (x < y) 为真。 |
| >=(大于或等于) | 检查左操作数的值是否大于或等于右操作数的值。如果是,则条件成立。 | (x >= y) 不成立。 |
| <=(小于或等于) | 检查左操作数的值是否小于或等于右操作数的值。如果是,则条件成立。 | (x <= y) 为真。 |
JavaScript 逻辑运算符
逻辑运算符通常用于对布尔值执行逻辑运算。但是逻辑运算符可以应用于任何类型的值,而不仅仅是布尔值。
JavaScript 支持以下逻辑运算符 -
假设 x 的值为 10,y 的值为 0。
| 运算符 | 描述 | 示例 |
|---|---|---|
| && (逻辑与) | 如果两个操作数都不为零,则条件为真。 | (x && y) 为假 |
| || (逻辑或) | 如果两个操作数中有一个非零,则条件为真。 | (x || y) 为真。 |
| ! (逻辑非) | 反转其操作数的逻辑状态。如果条件为真,则逻辑非运算符将使其为假。 | !x 为假。 |
JavaScript 位运算符
JavaScript 位运算符用于对整数执行位级运算。JavaScript 支持以下七种类型的位运算符 -
假设变量 x 为 2,变量 y 为 3,则 -
| 运算符 | 描述 | 示例 |
|---|---|---|
| &(按位与) | 对其整数参数的每一位执行布尔与运算。 | (x & y) 等于 2。 |
| | (按位或) | 它对其整数参数的每一位执行布尔或运算。 | (x | y) 等于 3。 |
| ^ (按位异或) | 它对其整数参数的每一位执行布尔异或运算。排他或意味着操作数一或操作数二中的一个为真,但不能同时为真。 | (x ^ y) 为 1。 |
| ~(按位非) | 它是一个一元运算符,通过反转操作数中的所有位来运算。 | (~y) 为 -4。 |
| << (左移) | 它将第一个操作数的所有位向左移动第二个操作数指定的位数。新的位用零填充。将值左移一位相当于乘以 2,左移两位相当于乘以 4,依此类推。 | (x << 1) 等于 4。 |
| >> (右移) | 二进制右移运算符。左侧操作数的值向右移动右侧操作数指定的位数。 | (x >> 1) 为 1。 |
| >>> (右移零位) | 此运算符与 >> 运算符类似,不同之处在于左侧移入的位始终为零。 | (x >>> 1) 为 1。 |
JavaScript 赋值运算符
在 JavaScript 中,赋值运算符用于为变量赋值。 JavaScript 支持以下赋值运算符 -
| 运算符 | 描述 | 示例 |
|---|---|---|
| =(简单赋值) | 将右侧操作数的值赋给左侧操作数 | z = x + y 将赋值 x + 的值。 y 等于 z |
| +=(加法和赋值) | 它将右操作数与左操作数相加,并将结果赋值给左操作数。 | z += x 等同于 z = z + x |
| =(减法和赋值) | 它将左操作数减去右操作数,并将结果赋值给左操作数。 | z -= x 等同于 z = z - x |
| *=(乘法和赋值) | 它将右操作数与左操作数相乘,并将结果赋值给左操作数。 | z *= x 等同于 z = z * x |
| /=(除法和赋值) | 它将左操作数除以右操作数,并将结果赋值给左操作数。 | z /= x 等同于 z = z / x |
| %=(取模和赋值) | 它使用两个操作数取模,并将结果赋值给左操作数。 | z %= x 等同于 z = z % x |
同样的逻辑也适用于位运算符,因此它们将类似于<<=、>>=、>>=、&=、|= 和 ^=。
JavaScript 其他运算符
JavaScript 支持其他一些运算符。这些运算符包括 条件 运算符 (?:)、typeof 运算符、delete 运算符等。
下表列出了 JavaScript 其他运算符及其说明。
| 运算符 | 描述 |
|---|---|
| ? :(条件) | 如果条件为真?则值为 X :否则值为 Y |
| typeof | 返回操作数的数据类型。 |
| ?? (空值合并运算符) | 当左侧操作数为空或未定义时,返回右侧操作数;否则,返回左侧操作数。 |
| delete | 从对象中删除属性。 |
| ,(逗号) | 计算操作数(从左到右)并返回最后一个操作数的值。 |
| ()(分组) | 允许更改运算符优先级。 |
| yield | 用于暂停和恢复生成器函数。 |
| (展开) | 用于展开可迭代对象,例如数组或字符串。 |
| **(幂运算) | 将左操作数取右操作数的幂 |

