JavaScript 运算符
JavaScript Operators(运算符)
Section titled “JavaScript Operators(运算符)”JavaScript 使用 operators(运算符)来赋值、比较值、执行算术运算等。
const x = 5; // 将值 5 赋给 xconst y = 2; // 将值 2 赋给 yconst z = x + y; // 将 x 和 y 的和 (7) 赋给 zJavaScript 算术 Operators(运算符)
Section titled “JavaScript 算术 Operators(运算符)”算术 operators 对数字(字面量或变量)执行数学计算。
| Operator | 描述 | 示例 |
|---|---|---|
| + | 加法 | 10 + 5 结果是 15 |
| - | 减法 | 10 - 5 结果是 5 |
| * | 乘法 | 10 * 5 结果是 50 |
| / | 除法 | 10 / 5 结果是 2 |
| % | 取模(余数) | 10 % 3 结果是 1 |
| ** | 幂运算(ES2016) | 10 ** 2 结果是 100 (10 的 2 次方) |
| ++ | 自增 | let a = 5; a++; 现在 a 是 6 |
| — | 自减 | let b = 5; b--; 现在 b 是 4 |
自增 (++) 和自减 (--) operators(运算符)可以是后缀形式 (x++) 或前缀形式 (++x)。后缀形式返回递增/递减 之前 的值,而前缀形式返回 之后 的值。
JavaScript 赋值 Operators(运算符)
Section titled “JavaScript 赋值 Operators(运算符)”赋值 operators 用于将值赋给 JavaScript 变量。
| Operator | 示例 | 等同于 |
|---|---|---|
| = | x = y | x = y |
| += | x += y | x = x + y |
| -= | x -= y | x = x - y |
| *= | x *= y | x = x * y |
| /= | x /= y | x = x / y |
| %= | x %= y | x = x % y |
| **= | x **= y | x = x ** y (ES2016) |
简单的赋值 operator (=) 将值赋给一个变量:
let score = 100;加法赋值 operator (+=) 将一个值加到变量上,并将结果重新赋给该变量:
let currentScore = 50;currentScore += 10; // currentScore 现在是 60JavaScript 字符串 Operators(运算符)
Section titled “JavaScript 字符串 Operators(运算符)”The + operator can also be used to concatenate (join) strings.
当与字符串一起使用时,+ operator 称为连接运算符。 |
|---|
const firstName = "John";const lastName = "Doe";const fullName = firstName + " " + lastName; // fullName 是 "John Doe"+= 赋值 operator 也可以用于字符串连接:
let greeting = "Hello ";greeting += "World!"; // greeting 是 "Hello World!"现代 JavaScript (ES6+) 提供了模板字面量(template literals,使用反引号 `)来实现更简单、更强大的字符串插值 (string interpolation):
const name = "Alice";const age = 30;const message = `My name is ${name} and I am ${age} years old.`;// message 是 "My name is Alice and I am 30 years old."添加字符串和数字
Section titled “添加字符串和数字”在对数字和字符串使用 + operator 时,会应用 JavaScript 的类型强制转换 (type coercion) 规则:
const sumNumbers = 5 + 5; // 结果是 10 (number)const concatStringNum = "5" + 5; // 结果是 "55" (string)const concatHelloNum = "Hello" + 5; // 结果是 "Hello5" (string)一般规则是:如果 + 的其中一个操作数 (operand) 是字符串,JavaScript 会将另一个操作数转换为字符串并执行连接操作。
其他算术 operators (-, *, /, %) 在执行操作之前会尝试将字符串转换为数字:
const subtractStrNum = "10" - 5; // 结果是 5 (number, "10" 被转换为 10)const multiplyStr = "5" * "2"; // 结果是 10 (number, 两者都被转换)JavaScript 比较 Operators(运算符)和逻辑 Operators(运算符)
Section titled “JavaScript 比较 Operators(运算符)和逻辑 Operators(运算符)”比较 operators 用于逻辑语句中,以确定变量或值之间的相等或不等。逻辑 operators 用于组合条件语句。
比较 Operators(运算符):
Section titled “比较 Operators(运算符):”| Operator | 描述 | 详情和示例 |
|---|---|---|
| == | 等于 | 在类型强制转换后比较值。5 == "5" 为 true。 |
| === | 严格等于 | 比较值 和 类型,不进行类型强制转换。5 === "5" 为 false。推荐用于大多数相等性检查。 |
| != | 不等于 | 在类型强制转换后比较值。5 != "5" 为 false。 |
| !== | 严格不等于 | 比较值 和 类型,不进行类型强制转换。5 !== "5" 为 true。推荐用于大多数不等性检查。 |
| > | 大于 | 10 > 5 为 true。 |
| < | 小于 | 10 < 5 为 false。 |
| >= | 大于或等于 | 10 >= 10 为 true。 |
| <= | 小于或等于 | 5 <= 10 为 true。 |
逻辑 Operators(运算符):
Section titled “逻辑 Operators(运算符):”| Operator | 描述 | 行为 |
|---|---|---|
| && | 逻辑与 | expr1 && expr2 如果 expr1 可以转换为 false,则返回 expr1;否则返回 expr2。 |
| || | 逻辑或 | expr1 || expr2 如果 expr1 可以转换为 true,则返回 expr1;否则返回 expr2。 |
| ! | 逻辑非 | !expr 如果 expr 可以转换为 true,则返回 false;否则返回 true。 |
三元 Operator(条件 Operator):
Section titled “三元 Operator(条件 Operator):”condition ? valueIfTrue : valueIfFalse
示例:const access = age >= 18 ? 'granted' : 'denied';
比较 operators 和逻辑 operators 是控制程序流程的基础,在 JS 比较和条件章节中有更详细的描述。 |
|---|