嗨!我是亚当斯,这是我的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