浏览 1554 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-12-13
1、两个的数据类型必须一样; 2、两个数据的值必须一样; 3、两个都不能是NaN; 4、两个都不能是对象(除非两个都是null); 说明:① JS是引用比较,而非值比较; ② === 比较时,两边的数据不做任何的类型转换。 例子: 1、数据类型不一样: <pre name="code" class="java">var a = '1'; var b = 1; var c = new String('1'); a === b;//结果是false a === c;//结果是false,同时c是一个对象</pre> 2、值不一样结果肯定是false,代码就不用写了吧。 3、NaN的情况: <pre name="code" class="java">NaN === NaN;//结果是false NaN === 0;//结果是false</pre> 4、不能是对象的情况: <pre name="code" class="java">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,数组也是对象 </pre> 5、容易出错的比较: <pre name="code" class="java">null === null; //结果是true,虽然null的数据类型是对象,这是一个特例 undefined === undefined; //结果是true,因为undefined是JS的全局属性 Infinity === Infinity; //结果是true,Infinity也是JS的全局属性 null === undefined; //结果是false,null是对象类型的,undefined是全局属性</pre> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |