一、===:称为等同符,当两边值的类型相同时,直接比较值,若类型不相同,直接返回false;
1.如果类型不同,就一定不相等。
2.如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断,即 NaN===NaN 为 false)。
3.如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
4.如果两个值都是true,或是false,那么相等。
5.如果两个值都引用同一个对象或是函数,那么相等,否则不相等。
6.如果两个值都是null,或是undefined,那么相等。
二、==:称为等值符,当等号两边的类型相同时,直接比较值是否相等,若不相同,则先转化为类型相同的值,再进行比较;
1.如果等号两边是boolean、string、number三者中任意两者进行比较时,优先转换为数字进行比较(如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较)。
2.如果等号两边出现了null或undefined,null和undefined除了和自己相等,就彼此相等(即null==undefined)。
3.NaN==NaN //返回false,NaN和所有值包括自己都不相等。