一、共同点:
他们都是 逻辑运算符,返回布尔值。
二、区别:
定义如下变量:
var a = 5 , b="5", c="3",d=5,e=3;
******************************************************************************
"=="会把左右两边的值进行转化为相同类型后再比较,只有满足按左右任意一方类型转换后的值相等即返回true,否则返回false。
如:
a==b;
把字符串b转换为整型数字5,a和b均为整型数,且值相等,返回 true
a==c;
把字符串c转换为整型数3发现二者值不相等,把a转换为字符串"5",依然不相等,返回 false
******************************************************************************
"==="会先判断左右两边的类型,类型不同直接返回false,类型相同再进行值的比较,值相等返回true,否则返回false
如:
a===b;
a是整型数字,b是字符串,类型不同,返回 false
a===e;
a和e类型相同,值不等,返回 false
a===d;
a和d类型相同且值相等,返回 true
三、使用
由于"=="需要把左右两边转化为相同类型后再比较值,而"==="没有值转换的过程,所以相对来说"==="的效率要比"=="高,所以建议在编写程序时若明确的知道左右两边的类型是相同的则优先使用"==="。
姑且把"=="叫做 “模糊等于”,把"==="叫做“ 精确等于”。