JavaScript 比较

比较运算符用来判断两个值的大小或是否相等,结果永远是布尔值 true / false。比较结果是 if、循环等控制语句的"开关",其中 == 与 === 的区别是重中之重。

大小比较

、<、>=、<= 对数字直接比较,对字符串按字符编码一位一位比较:

console.log(5 > 3);        // 输出:true
console.log(5 <= 3);       // 输出:false
console.log(5 >= 5);       // 输出:true
console.log("a" < "b");    // 输出:true(按编码比较)
console.log("10" > "2");   // 输出:false('1' 小于 '2',逐位比较)

相等比较:== 与 ===

== 比较前会自动做类型转换,=== 要求类型和值都相同才返回 true:

console.log(5 == "5");       // 输出:true("5" 被转成数字)
console.log(5 === "5");      // 输出:false(类型不同)
console.log(0 == false);     // 输出:true(false 被转成 0)
console.log(0 === false);    // 输出:false
console.log(null == undefined);  // 输出:true
console.log(null === undefined); // 输出:false

实际开发一律建议用 ===,避免隐式转换带来的意外结果。不相等运算符同理:!= 会自动转类型,!== 是严格"不全等",日常也应使用 !==。

逻辑运算符

&&(逻辑与)、||(逻辑或)、!(逻辑非)用来组合多个条件:

let age = 20;
let hasCard = true;
console.log(age > 18 && hasCard); // 输出:true(两个条件都成立)
console.log(age > 25 || hasCard); // 输出:true(至少一个成立)
console.log(!hasCard);            // 输出:false(取反)

三元运算符

条件 ? 值1 : 值2 是 if/else 的简洁写法,条件成立取值 1,否则取值 2:

let score = 85;
let result = score >= 60 ? "及格" : "不及格";
console.log(result); // 输出:及格

小结

比较运算返回布尔值。牢记 == 会自动转类型而 === 是严格比较,日常统一使用 === 与 !==,再配合 &&、||、! 和三元运算符,就能写出清晰可靠的判断条件。

笔记加载中…