码迷,mamicode.com
首页 > 其他好文 > 详细

相等运算符==与等同运算符===

时间:2015-03-20 23:40:12      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

相等运算符==与等同运算符===,都可以用于判断数据是否相等,返回boolean类型的数据;==运算符做比较时,要求类型不一定相同,值通过数据类型转换之后相等即可。===运算符做比较时,要求类型必须相同,而且值也必须相同。

===运算符的条件:

1、如果运算数类型不相同,那么不等同;

2、如果运算数类型都是number,那么比较两个数值(任意一个为NaN,那么也不等同)是否等同;

3、如果运算数类型都是boolean,那么两个运算数都为true或false时就等同;

4、如果运算数类型都是对象类型时,那么两个运算数必须引用到同一个对象时才等同,即使引用的两个对象的属性完全相同,也不能判定为等同;

5、运算数null只能null等同;

6、运算数undefined只能与undefined等同;

==运算符的条件:

1、如果运算数类型相同,那么按===运算符进行比较;

2、如果一个运算数是number,另一个是boolean类型,那么把boolean转换成0或1,再判断number是否相等;

3、如果一个运算数是NaN,那么结果一定不相等;

4、null、undefined、""、0、false相等;

5、1、true相等;

6、非空字符串、true相等;

7、如果一个运算数是number,另一个是string类型,那么先把string转换为number,再做number之间的判断;

8、如查一个运算数是对象,另一个是number或string类型,那么把对象转换为基本类型,再做比较。对象转换为基本类型时,一般先调用对象的valueOf方法,以返回一个基本类型的数据。如果valueOf方法没能返回一个基本类型的数据,那么再调用toString方法,返回一个字符串,再判断相等。但与众不同的是Date对象,它是先调用toString方法返回字符串,再判断相等。

进行相等性转换的规则是运算数都尽量向number类型转换;

"1" == true;

这个表达式的执行过程是,先把字符串"1"转换为数值1,再把boolean值true转换为数值1,再判断相等性。

相等运算符==与等同运算符===

标签:

原文地址:http://www.cnblogs.com/wangg-mail/p/4354767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!