關於JS中的全等和不全等、等於和不等於問題
阿新 • • 發佈:2021-09-23
目錄
- 全等和不全等http://www.cppcns.com
- 全等
- 不全等
- 相等和不相等
- 相等
- 不相等
全等和不全等
全等和不全等比較的是符號兩側的運算元,以全等操作符為例,如果運算元滿足全等則返回true,否則返回false。全等和不全等操作符在做比較相等時不會轉換運算元,也就是在不轉換的前提下直接進行全等或不全等的比較。
全等
符號:===
let str1="1" let str2=1 console.log(str1===str2) //false
不全等
符號:!==
lehttp://www.cppcns.comt str1="1"
let str2=1
console.log(str1!==str2) //true
相等和不相等
相等和不相等操作符也同樣是比較兩個運算元,以相等操作符為例,如果兩個運算元滿足相等則返回true,否則返回false。不過與全等和不全等操作符的區別在於:相等和不相等操作符會先對運算元進行強制型別轉換,轉後的運算元再進行比較。
相等
符號:==
let str1="1" let str2=1 console.log(str1==str2) //true console.log(str1===str2) //false
let flag=true let num=1 console.log(flag==num) //true console.log(flag===num) //false
不相等
符號:!=
let str1="1" let str2=1 let str3="hello" console.log(str1!=str2) //false 先是型別轉換,之後進行比較 console.log(str1!==str2) //true 對於全等操作福這兩個運算元不進行強制型別轉換,自然就不全等 console.log(str2!=str3) //true console.log(str2!==str3) //true
對於相等和不相等操作符對運算元進行強制型別轉換的規則如下:
布林值會直接轉換成數值進行比較:false:0;true:1
字串遇到數值則會轉換為數值再進行比較
對於物件,如果兩個運算元都是物件則比較二者是否為同一個物件,如果兩個運算元指向同一個物件則返回true,否則返回false。如果其中的一個運算元為物件則會呼叫valueOf方法取到原始值,之後再進行比較(按照上述規則)
const p = new Object('zhangsan') //相當於const p=new String('zhangsan') console.log(p.valueOf() == 'zhangsan') //true console.log(p == 'zhangsan') //true
const p1={name:'zhangsan'} let p2=p1 console.log(p1==p2) //true p2={} console.log(p1==p2) //false
對於null和undefined,null和undefined是相等的,但是無論和誰比較,他們都不會被強轉。
console.log(null==undefined) //true console.log(null===undefined) //false 對於全等返回結果依然是false
對於NaN,NaN不等於任何值包括他自己。涉及到操作符是NaN的比較,只要是相等操作符則返回false,不相等則返回true
console.log(NaN==NaN) //false console.log(NaN!='') //true console.log(NaN!=1ITkSbdX) //true console.log(NaN!={}) //true
到此這篇關於中的全等和不全等、ITkSbdX等於和不等於的文章就介紹到這了,更多相關js 全等和不全等、等於和不等於內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!