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

相等运算符==与等同运算符===,均可以用于判断数据是否相等,返回boolean类型的数据;==运算符作比较时,要求类型不必定相同,值经过数据类型转换以后相等便可。===运算符作比较时,要求类型必须相同,并且值也必须相同。 对象

===运算符的条件: 字符串

一、若是运算数类型不相同,那么不等同; string

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

三、若是运算数类型都是boolean,那么两个运算数都为true或false时就等同; 引用

四、若是运算数类型都是对象类型时,那么两个运算数必须引用到同一个对象时才等同,即便引用的两个对象的属性彻底相同,也不能断定为等同; 方法

五、运算数null只能null等同; 数据

六、运算数undefined只能与undefined等同; 类型转换

==运算符的条件: co

一、若是运算数类型相同,那么按===运算符进行比较; 字符

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

三、若是一个运算数是NaN,那么结果必定不相等;

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

五、一、true相等;

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

七、若是一个运算数是number,另外一个是string类型,那么先把string转换为number,再作number之间的判断;

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

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

"1" == true;

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

相关文章
相关标签/搜索