JavaScript入门-实例讲解比较运算符

在JavaScript中,我们常常想比较两个值,并根据结果做一些处理。

这次,我将解释用于检查值之间关系的比较运算符。

比较运算符

比较运算符是比较其操作数的值并返回真或假的运算符。

操作数 比较运算符 操作数

可以使用以下类型的比较运算符。

种类 运算符 说明
大于 > 左边的操作数大于右边的操作数返回 true
大于等于 >= 左边的操作数大于或等于右边的操作数返回 true
小于 < 左边的操作数小于右边的操作数返回 true
小于等于 <= 左边的操作数小于或等于右边的操作数返回 true
严格全等 === 两边操作数相等且类型相同时返回 true。
严格不等式 !== 两边操作数不相等或类型不同时返回 true。
等于 == 如果两边操作数相等时返回 true。
不等于 != 如果两边操作数不相等时返回 true

>>=<<=比较值的大小。此类比较运算符有时称为关系运算符。

另外 ===!====!=比较值,看它们是否彼此相等。此类比较运算符有时称为相等运算符。

JavaScript入门-实例讲解比较运算符

使用比较运算符

让我们看看如何使用比较运算符以及可以获得什么。

大于运算符 (>)

如果前面的操作数大于后面的操作数,则大于运算符返回 true,否则返回 false。

console.log(10 > 5); // true
console.log(10 > 10); // false

大于等于运算符 (>=)

如果前面的操作数大于或等于后面的操作数,则大于或等于运算符返回 true,否则返回 false。

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

在习惯之前,您可能想知道是先写大于号还是先写等号。

作为大于等于运算符的名称,让我们按照>→=的顺序记住。

小于运算符 (<)

如果前面的操作数小于后面的操作数,则小于运算符返回 true,否则返回 false。

console.log(5 < 10); // true
console.log(10 < 10); // false

小于等于运算符 (<=)

如果前面的操作数小于或等于后面的操作数,则小于或等于运算符返回 true,否则返回 false。

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

小于等于运算符也和大于等于运算符一样,以<→=的顺序来记述。

严格相等运算符 (===)

严格相等运算符使用三重等于===来比较前后操作数。

如果它们是相同的值和相同的类型,则返回 true,否则返回 false。

console.log(5 === 5); // true 
console.log(5 === '5'); // false 

它的特点是不仅要找到相同的值,而且要与条件属于同一类型。

此外,如果两个操作数都是对象,则在两个操作数引用同一对象时返回 true。

如果引用的对象不同,则为假。

const obj1 = {};
const obj2 = {};

// 比较相同的参照
console.log(obj1 === obj1); // true 
// 比较不同的参照
console.log(obj1 === obj2); // false

严格的不等式运算符 (!==)

严格不等运算符在使用!双等号==之前和之后比较两个操作数。

如果它们是不同的值或不同的类型,则返回 true,否则返回 false。

console.log(5 !== 5); // false 
console.log(5 !== '5'); // true 

严格不等运算符产生与严格相等运算符相反的结果。

相等运算符 (==)

相等运算符使用双等于==来比较两个操作数,如果相等则返回 true,否则返回 false。

当比较相同数据类型的值时,结果与严格相等运算符相同。

console.log(5 == 5); // true
console.log('hello' == 'hello'); // true
console.log('hello' == 'hi'); // false

相等运算符测试值相等性,但不测试数据类型相等性。

下面比较数字 5 和字符串 '5',它们被认为彼此相等。

console.log(5 == '5'); // true

如果操作数在内部属于不同类型,则在比较之前将它们隐式转换为相同类型。

下面是比较不同类型的值时的例子。

让我们看看类型是如何转换的。

// 字符串被转换成数值
console.log(5 == '5'); // true

// ‘01’被转换成‘1’
console.log(1 == '01'); // true

// true被转换为1
console.log(1 == true); // true
console.log(1 == false); // false

// false被转换为0
console.log(0 == true); // false
console.log(0 == false); // true

// 比较null和undefined返回true
console.log(null == undefined); // true
console.log(null == 0); // false
console.log(null == 1); // false

这样一来,就要注意结果一见不可知的行为。

因此,建议使用严格相等运算符而不是严格相等运算符,如果要比较不同的类型,先比较类型。

不等于运算符 (!=)

不等运算符使用!和等于=来比较前后两个操作数,如果不同则返回真,否则返回假。

console.log(5 != 5); // false
console.log('hello' != 'hello'); // false
console.log('hello' != 'hi'); // true

与相等运算符一样,不等运算符在比较不同类型的操作数时隐式地进行类型转换。

console.log(5 != '5'); // false
console.log(1 != '01'); // false
console.log(1 != true); // false
console.log(0 != true); // true
console.log(null != 0); // true

同样,建议尽可能避免使用不等运算符,而是使用不执行类型转换的严格不等运算符。

结语

现在,我们来谈谈比较运算符。

//重点

  • 比较运算符是比较两个值并返回真假值的运算符

  • “>”“>=”“<”“<=”比较值的大小

  • “===”“!==”“==”“!=”比较值是否相等

*等于(不等于)运算符比较不同类型的值时,会隐式转换为相同类型

比较运算符包含在各种语句中,例如 if 和 for 语句。