==:称为运算符,多用它来判断两者相等,在做比较时会自动转换数据类型;
===:称为“严格等”见名知意,严格等要求进行比较的操作数必须类型一致 因此在比较时不会自动转换数据类型;
举例说明:
在1 == true中
两边类型不同,"=="会先进行类型转换,将true转换为,即 1 == 1;
此时,"==" 左右两边的类型都为数值型,返回false
如果:
① 1 === true中 左侧为数值型,右侧为布尔型,严格等不会进行数据转换,左右两侧类型不同,结果为false;
② “1” === 1 左侧为字符型,右侧为数值型,左右两侧类型不同,结果还是false;
③ 1 === 1 左侧为数值型,右侧为int数值型,左右两侧类型相同,数值大小也相同,结果为true;
④ 1 === 2 左侧为数值型,右侧为数值型,左右两侧类型相同,但数值大小不同,结果为false;
结论: 运算符只要求值相等; 严格等要求值和类型都相等
注意: 严格等若两个值同为数字,且值相同,除非其中一个或两个都是NaN(这种情况它们不是等同的),否则它们是等同的。