Skip to content

6. 运算符(计算与比较)

运算符是 JavaScript 中用于执行操作的符号,如算术运算、比较运算、逻辑运算等。本章节将带你学习 JavaScript 的各种运算符及其使用方法。

6.1 算术运算符:+ - * / % ++ --

算术运算符用于执行基本的数学运算。

加法运算符(+)

javascript
let a = 5;
let b = 3;
let sum = a + b;  // 8

// 字符串拼接
let str1 = "Hello";
let str2 = "World";
let greeting = str1 + " " + str2;  // "Hello World"

减法运算符(-)

javascript
let a = 5;
let b = 3;
let difference = a - b;  // 2

乘法运算符(*)

javascript
let a = 5;
let b = 3;
let product = a * b;  // 15

除法运算符(/)

javascript
let a = 10;
let b = 2;
let quotient = a / b;  // 5

// 注意:JavaScript 中的除法总是返回浮点数
let c = 5;
let d = 2;
let result = c / d;  // 2.5

取模运算符(%)

取模运算符返回除法的余数。

javascript
let a = 10;
let b = 3;
let remainder = a % b;  // 1

// 用于判断奇偶性
let num = 7;
if (num % 2 === 0) {
    console.log("偶数");
} else {
    console.log("奇数");
}

自增运算符(++)

自增运算符将变量的值加 1。

javascript
let a = 5;
a++;  // 等同于 a = a + 1
console.log(a);  // 6

// 前缀自增
let b = 5;
console.log(++b);  // 6
console.log(b);  // 6

// 后缀自增
let c = 5;
console.log(c++);  // 5
console.log(c);  // 6

自减运算符(--)

自减运算符将变量的值减 1。

javascript
let a = 5;
a--;  // 等同于 a = a - 1
console.log(a);  // 4

// 前缀自减
let b = 5;
console.log(--b);  // 4
console.log(b);  // 4

// 后缀自减
let c = 5;
console.log(c--);  // 5
console.log(c);  // 4

6.2 赋值运算符:= += -= *= /=

赋值运算符用于给变量赋值。

基本赋值(=)

javascript
let a = 5;

加法赋值(+=)

javascript
let a = 5;
a += 3;  // 等同于 a = a + 3
console.log(a);  // 8

// 字符串拼接
let str = "Hello";
str += " World";  // 等同于 str = str + " World"
console.log(str);  // "Hello World"

减法赋值(-=)

javascript
let a = 5;
a -= 3;  // 等同于 a = a - 3
console.log(a);  // 2

乘法赋值(*=)

javascript
let a = 5;
a *= 3;  // 等同于 a = a * 3
console.log(a);  // 15

除法赋值(/=)

javascript
let a = 10;
a /= 2;  // 等同于 a = a / 2
console.log(a);  // 5

取模赋值(%=)

javascript
let a = 10;
a %= 3;  // 等同于 a = a % 3
console.log(a);  // 1

6.3 比较运算符:> < >= <= == === != !==

比较运算符用于比较两个值,返回布尔值 truefalse

大于(>)

javascript
console.log(5 > 3);  // true
console.log(3 > 5);  // false

小于(<)

javascript
console.log(3 < 5);  // true
console.log(5 < 3);  // false

大于等于(>=)

javascript
console.log(5 >= 5);  // true
console.log(5 >= 3);  // true
console.log(3 >= 5);  // false

小于等于(<=)

javascript
console.log(3 <= 3);  // true
console.log(3 <= 5);  // true
console.log(5 <= 3);  // false

相等(==)

宽松比较,会进行类型转换。

javascript
console.log(5 == 5);  // true
console.log(5 == "5");  // true(字符串 "5" 被转换为数字 5)
console.log(0 == false);  // true(0 和 false 都被转换为 0)
console.log(null == undefined);  // true

严格相等(===)

严格比较,不会进行类型转换,要求类型和值都相等。

javascript
console.log(5 === 5);  // true
console.log(5 === "5");  // false(类型不同)
console.log(0 === false);  // false(类型不同)
console.log(null === undefined);  // false(类型不同)

不相等(!=)

宽松比较,会进行类型转换。

javascript
console.log(5 != 3);  // true
console.log(5 != "5");  // false(字符串 "5" 被转换为数字 5)

严格不相等(!==)

严格比较,不会进行类型转换。

javascript
console.log(5 !== 3);  // true
console.log(5 !== "5");  // true(类型不同)

6.4 逻辑运算符:&& || !(与 / 或 / 非)

逻辑运算符用于组合或取反布尔值。

逻辑与(&&)

当所有操作数都为真时,返回最后一个真值;否则返回第一个假值。

javascript
console.log(true && true);  // true
console.log(true && false);  // false
console.log(false && true);  // false
console.log(false && false);  // false

// 短路求值
let a = 5;
let b = 10;
console.log(a > 0 && b > 0);  // true
console.log(a > 10 && b > 0);  // false(a > 10 为假,短路)

逻辑或(||)

当至少有一个操作数为真时,返回第一个真值;否则返回最后一个假值。

javascript
console.log(true || true);  // true
console.log(true || false);  // true
console.log(false || true);  // true
console.log(false || false);  // false

// 短路求值
let a = 5;
let b = 10;
console.log(a > 0 || b > 0);  // true(a > 0 为真,短路)
console.log(a > 10 || b > 10);  // false

// 设置默认值
let name = "";
let displayName = name || "Guest";
console.log(displayName);  // "Guest"

逻辑非(!)

取反布尔值。

javascript
console.log(!true);  // false
console.log(!false);  // true
console.log(!0);  // true(0 被转换为 false)
console.log(!"" );  // true(空字符串被转换为 false)
console.log(!"Hello");  // false(非空字符串被转换为 true)
console.log(!!"Hello");  // true(双重取反,将值转换为布尔值)

6.5 运算符优先级(简单记忆法)

运算符优先级决定了表达式中运算的执行顺序。优先级高的运算符先执行,优先级低的运算符后执行。

优先级从高到低

  1. 括号()
  2. 一元运算符++, --, !
  3. 算术运算符*, /, % 高于 +, -
  4. 比较运算符>, <, >=, <= 高于 ==, ===, !=, !==
  5. 逻辑运算符&& 高于 ||
  6. 赋值运算符=, +=, -=, *=, /=

示例

javascript
// 括号优先级最高
let result1 = (5 + 3) * 2;  // 16

// 一元运算符优先级高于算术运算符
let a = 5;
let result2 = ++a * 2;  // 12(a 先自增为 6,再乘以 2)

// 算术运算符优先级高于比较运算符
let result3 = 5 + 3 > 6;  // true(先计算 5 + 3 = 8,再比较 8 > 6)

// 比较运算符优先级高于逻辑运算符
let result4 = 5 > 3 && 2 < 4;  // true(先比较 5 > 3 和 2 < 4,再进行逻辑与)

// 逻辑与优先级高于逻辑或
let result5 = true || false && false;  // true(先计算 false && false = false,再计算 true || false)

// 逻辑运算符优先级高于赋值运算符
let b = true && false;  // false

简单记忆法

  • 括号最优先:先计算括号内的表达式
  • 一元先于二元:自增、自减、逻辑非等一元运算符先执行
  • 乘除高于加减:乘法、除法、取模高于加法、减法
  • 比较高于逻辑:比较运算符高于逻辑运算符
  • 逻辑与高于或:逻辑与高于逻辑或
  • 赋值最后算:赋值运算符最后执行

小结

通过本章节的学习,你已经掌握了:

  • 算术运算符:+, -, *, /, %, ++, --
  • 赋值运算符:=, +=, -=, *=, /=
  • 比较运算符:>, <, >=, <=, ==, ===, !=, !==
  • 逻辑运算符:&&, ||, !
  • 运算符优先级

在后续的章节中,我们将学习 JavaScript 的条件语句、循环和函数等核心语法。

© 2026 编程马·菜鸟教程 版权所有