Skip to content

JavaScript 运算符

JavaScript 使用 operators(运算符)来赋值、比较值、执行算术运算等。

const x = 5; // 将值 5 赋给 x
const y = 2; // 将值 2 赋给 y
const z = x + y; // 将 x 和 y 的和 (7) 赋给 z

JavaScript 算术 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 = yx = y
+=x += yx = x + y
-=x -= yx = x - y
*=x *= yx = x * y
/=x /= yx = x / y
%=x %= yx = x % y
**=x **= yx = x ** y (ES2016)

简单的赋值 operator (=) 将值赋给一个变量:

let score = 100;

加法赋值 operator (+=) 将一个值加到变量上,并将结果重新赋给该变量:

let currentScore = 50;
currentScore += 10; // currentScore 现在是 60

JavaScript 字符串 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."

在对数字和字符串使用 + 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 用于组合条件语句。

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。
Operator描述行为
&&逻辑与expr1 && expr2 如果 expr1 可以转换为 false,则返回 expr1;否则返回 expr2。
||逻辑或expr1 || expr2 如果 expr1 可以转换为 true,则返回 expr1;否则返回 expr2。
!逻辑非!expr 如果 expr 可以转换为 true,则返回 false;否则返回 true。

condition ? valueIfTrue : valueIfFalse 示例:const access = age >= 18 ? 'granted' : 'denied';

比较 operators 和逻辑 operators 是控制程序流程的基础,在 JS 比较和条件章节中有更详细的描述。