== 和 === 的区别
1、相同点:都属于JavaScript中的比较运算符,是对两个变量进行比较,结果要么是true,要么是false。
2、不同点:
(1)== 等于
只比较值,不比较数据类型
不论数据类型,只看数值是否相等
console.log(1== 1);
在控制台输出的结果为 true
console.log(1 == '1');
在控制台输出的结果也为 true
(2)=== 全等
值和数据类型都需要比较
必须数据类型和值都要相同时,才会为true
console.log(1 === 1);
在控制台输出的结果为 true
console.log(1 === '1');
在控制台输出的结果为 false
不同的原因:
console.log(typeof(1));
检查数据类型: 1 数据类型为 number
console.log(typeof('1'));
检查数据类型: '1' 数据类型为 string
因为 === 全等需要比较值和数据类型的,两者任一条件不满足则就不会是全等
3、== 和 === 中的注意点:
(1)== 等于
① 如果两个值类型不同,也有可能相等
若一个是null,一个是 undefined,那么结果是相等的
② 如果其中至少一个是NaN,那么就不相等
console.log( null == undefined);
在控制台输出的结果为 true
console.log( NaN == NaN);
在控制台输出的结果为 false
(2)=== 全等于
① 若一个是null,一个是 undefined,那么结果是不相等的
因为null的数据类型是object,而undefined的数据类型是undefined,显然两个虽然都表示空,但是还是不全等的。
console.log( null === undefined);
在控制台输出的结果为 false
console.log(typeof(null));
在控制台输出的数据类型是 object
console.log(typeof(undefined));
在控制台输出的数据类型是 undefined
② 如果两个值都是null,或是undefined,那么全等
console.log( null === null);
在控制台输出的结果为 true
console.log( undefined === undefined);
在控制台输出的结果为 true
③ 若其中至少一个是NaN,那么结果也是不相等
NaN :表示不是一个数字。
需要注意的是,NaN是JavaScript 中唯一 一个自身不相等的存在!
另外:判断一个值是否是NaN,只能使用 isNaN( ) 来判断。
console.log(typeof(NaN));
在控制台输出的数据类型是 number
console.log( NaN === NaN);
在控制台输出的结果为 false
本文详细解析了JavaScript中的==与===运算符的区别。==仅比较值,不考虑数据类型,而===同时比较值和类型。文章通过实例展示了两者的具体用法,包括对null、undefined和NaN的特殊处理。
614





