全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-16 5 分钟 ✍️ juanwangdev

JavaScript 比较运算符

比较运算符用于比较两个值,返回布尔值 truefalse,是条件判断的基础。

基本比较运算符

运算符描述示例
==相等(类型转换)5 == '5' // true
===严格相等(无类型转换)5 === '5' // false
!=不相等(类型转换)5 != '5' // false
!==严格不相等5 !== '5' // true
>大于5 > 3 // true
<小于5 < 3 // false
>=大于等于5 >= 5 // true
<=小于等于5 <= 3 // false

相等比较

JavaScript
// 宽松相等 ==(会进行类型转换)
console.log(5 == '5');        // true
console.log(0 == false);      // true
console.log(null == undefined); // true
console.log('' == 0);         // true

// 严格相等 ===(不进行类型转换)
console.log(5 === '5');       // false
console.log(0 === false);     // false
console.log(null === undefined); // false
console.log('' === 0);        // false

大小比较

JavaScript
// 数字比较
console.log(5 > 3);     // true
console.log(5 >= 5);    // true
console.log(3 < 5);     // true
console.log(3 <= 3);    // true

// 字符串比较(按 Unicode 编码)
console.log('a' < 'b');     // true
console.log('abc' < 'abd'); // true
console.log('A' < 'a');     // true(大写字母编码更小)

// 不同类型比较(会转为数字)
console.log('10' > 5);      // true('10' 转为 10)
console.log('abc' > 5);     // false('abc' 转为 NaN)

特殊值比较

JavaScript
// NaN 的特殊性
console.log(NaN == NaN);    // false
console.log(NaN === NaN);   // false
console.log(Number.isNaN(NaN)); // true(检测 NaN)

// null 和 undefined
console.log(null == undefined);  // true
console.log(null === undefined); // false
console.log(null > 0);     // false
console.log(null == 0);    // false
console.log(null >= 0);    // true(特殊:null 转为 0)

// 对象比较(比较引用)
const obj1 = { a: 1 };
const obj2 = { a: 1 };
const obj3 = obj1;
console.log(obj1 == obj2);  // false(不同引用)
console.log(obj1 === obj2); // false
console.log(obj1 === obj3); // true(同一引用)

类型转换规则

JavaScript
// 字符串与数字比较:字符串转数字
console.log('10' > 5);     // true
console.log('10' == 10);   // true

// 布尔值参与比较:转为数字(true=1, false=0)
console.log(true == 1);    // true
console.log(false == 0);   // true
console.log(true > 0);     // true

// 对象转原始值
console.log([1] == 1);    // true([1].valueOf().toString() = '1')
console.log([2] > 1);      // true

注意事项

  • 推荐使用 ===!== 进行严格比较,避免类型转换带来的意外
  • NaN 不等于任何值,包括它自己
  • 对象比较的是引用地址,不是内容
JavaScript
// 推荐写法
if (value === 5) { }        // 严格比较
if (value !== null) { }      // 严格比较

// 避免的写法
if (value == 5) { }          // 可能因类型转换产生意外结果
if (value != null) { }       // 同样会匹配 undefined

要点总结

  • === 严格相等:比较值和类型,推荐使用
  • == 宽松相等:会进行类型转换,容易产生意外结果
  • 大小比较时,不同类型会转为数字再比较
  • NaN 不等于任何值,使用 Number.isNaN() 检测
  • 对象比较的是引用,两个不同对象即使内容相同也不相等

📝 发现内容有误?点击此处直接编辑

← 上一篇 JavaScript 条件语句(if-else)
下一篇 → JavaScript 算术运算符
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库