JS中全等和相等操作符的区别和比较规则

JavaScript038

JS中全等和相等操作符的区别和比较规则,第1张

一、两者的区别

相等:先强制转换变量类型,再比较

全等:不转换类型,一旦类型不同,就是不全等。

二、相等和不相等的比较规则

1.操作符中有布尔值时:比较前先将之转换为数值

false =>0 , true =>1

2.字符串,另一个是数值:字符串去将就数值

3.对象:object.valueOf()方法,用得到的基本类型值按照前面的规则进行比较

4.操作符

4.1 none == undefined:相等

4.2 NaN ==其他(不管是别人还是自己):false(不等号操作,反之)

4.3 对象 == 对象 :指向同一个对象时才true

出于严谨考虑,推荐‘===’操作符

全等“===”是等于“==”的加强型等于(==)要求值相等就可以返回true,例如 55=="55" 可以是正确的,返回true全等于(===)要求值和类型都相同返回true,例如 55==="55" 就不正确,返回false

让我来贴个偷懒的办法吧:

var a=[1,1,1,1,1]

alert((a.join(',')+',').replace(new RegExp(a[0]+',','gi'),'')=='')

var b=[1,1,1,2,3]

alert((b.join(',')+',').replace(new RegExp(b[0]+',','gi'),'')=='')

思路是将数组转换为字符串,然后将数组第一个元素+逗号替换为空字符串,如果替换结果是整个字符串变为空字符串,说明没有与第一个元素不同的值,这个办法比较取巧,只一行代码就够了.

如果还有问题欢迎追问,问题解决请及时选择满意回答,谢谢.