JS:相等运算符(== 、===和!==、!===)

使用==来做相等运算
相等运算符用来比较两个值是否相等,如果相等返回true,反之返回false。
举例:

console.log(12 == 12); // 值为true
console.log(12 == 123); // 值为false

当使用==来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型,然后再比较。
tips:undefined衍生自null,所以当这两个值做相等判断时,会返回true。
举例:

console.log(12 == '12'); // 值为true
console.log(1 == true); // 值为true
console.log(null == 0); // 值为false

NaN不和任何值相等,包括它本身,因此不能用==来判断一个值是否为NaN,在JS中其实提供了一种方法,可以通过isNaN()函数来判断是一个值是否为NaN,该值是NaN返回true,不是NaN返回false。

console.log(NaN == 0); // 值为false
console.log(NaN == NaN); // 值为false
var b = NaN;
console.log(isNaN(b)); // 值为true

使用!=来做不相等运算
不相等用来判断两个值是否不相等,如果不相等返回true,反之返回false。
举例:

console.log(4 != 5); // 值为true
console.log(5 != 5); // 值为false
console.log(0 != true); // 值为true
console.log('ab' != 'abc'); // 值为true

不相等!=也会对变量进行自动类型转换,如果转换后相等依旧返回false。

console.log(1 != true); // 值为false

===全等
用来判断两个值是否全等,它和相等类似,不同的是全等不会做自动的类型转换,值是什么类型就是什么类型,如果两个值的类型不同,直接返回false。

console.log(12 === '12'); // 值为false
console.log(1 === true); // 值为false
console.log(null === undefined); // 值为false

!==不全等
用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换,值是什么类型就是什么类型,如果两个值的类型不同,直接返回true。
举例:

console.log(1 !== '1'); // 值为true

你可能感兴趣的:(JS,javascript)