60秒完全掌握相等操作符

252 阅读1分钟

嗨!我是亚当斯,这是我的60秒系列的第一篇。

ECMAScript提供了两组相等操作符(operator):第一组是等于和不等于,它们在比较是否相等之前,一定会转换两者的数据类型;第二组是全等于和不全等于,它们在比较是否相等之前,不转换两者的数据类型

一、等于和不等于

“==”,表示等于。先对数据类型进行强制转换,再确定两边是否相等,如果操作数相等,则会返回true。

注意:null == undefined 是true

“!=”,表示不等于。先对数据类型进行强制转换,再确定两边是否不相等,如果操作数不相等,则会返回true。

二、等于和不等于

“===”,表示全等于。没有强制转换,当值和数据类型都相等时,才会返回true。

注意:null === undefined 是false

“!==”,表示不全等于。没有强制转换,当值和数据类型中有一个不相同时,就会返回true,表示两边确实存在区别;当值和数据类型都相同时,才会返回false,表示两边完全没有区别。

开发中,推荐使用“===”和“!==”,这样有助于在代码中保持数据类型的完整性。

例子

let result1 = ('55' === 55);
console.log(result1);
// 转换为疑问句:string型的55 和 number型的55全等 对吗?
// 错  false

let result2 = ('55' !== 55);
console.log(result2);
// 转换为疑问句:string型的55 和 number型的55不全等 对吗?
// 对 true

let result3 = (55 === 55);
console.log(result3);
// 转换疑问句:number型的55 和 number型的55全等 对吗?
// 对 true

let result4 = (55 !== 55);
console.log(result4);
// 转换疑问句:number型的55 和 number型的55不全等 对吗?
// 错 false