JavaScript 三个等号(===)比较后为true,必须满足以下四个条件:
[b]1、两个的数据类型必须一样;
2、两个数据的值必须一样;
3、两个都不能是NaN;
4、两个都不能是对象(除非两个都是null);[/b]
[b]
说明:① JS是引用比较,而非值比较;
② === 比较时,两边的数据不做任何的类型转换。[/b]
例子:
1、数据类型不一样:
2、值不一样结果肯定是false,代码就不用写了吧。
3、NaN的情况:
4、不能是对象的情况:
5、容易出错的比较:
[b]1、两个的数据类型必须一样;
2、两个数据的值必须一样;
3、两个都不能是NaN;
4、两个都不能是对象(除非两个都是null);[/b]
[b]
说明:① JS是引用比较,而非值比较;
② === 比较时,两边的数据不做任何的类型转换。[/b]
例子:
1、数据类型不一样:
var a = '1';
var b = 1;
var c = new String('1');
a === b;//结果是false
a === c;//结果是false,同时c是一个对象2、值不一样结果肯定是false,代码就不用写了吧。
3、NaN的情况:
NaN === NaN;//结果是false
NaN === 0;//结果是false4、不能是对象的情况:
var a = 1;
var b = new Number(1);
var c = new Number(1);
var d = {s: 1, t: 2};
var e = {s: 1, t: 2};
var f = [1, 2, 3];
var g = [1, 2, 3];
a === b;//结果是false
c === b;//结果是false
d === e;//结果是false,因为它们都是对象,就算它们属性及其值都一样
f === g;//结果是false,数组也是对象
5、容易出错的比较:
null === null; //结果是true,虽然null的数据类型是对象,这是一个特例
undefined === undefined; //结果是true,因为undefined是JS的全局属性
Infinity === Infinity; //结果是true,Infinity也是JS的全局属性
null === undefined; //结果是false,null是对象类型的,undefined是全局属性
本文详细解析了JavaScript中三等号(===)的比较规则,包括数据类型一致、值相同、非NaN及非对象(除非都是null)的四个条件。通过实例展示了不同情况下的比较结果,并特别强调了JS作为引用比较而非值比较的特点。
1万+

被折叠的 条评论
为什么被折叠?



