關(guān)于JS中的全等和不全等、等于和不等于問題
全等和不全等
全等和不全等比較的是符號兩側(cè)的操作數(shù),以全等操作符為例,如果操作數(shù)滿足全等則返回true,否則返回false。全等和不全等操作符在做比較相等時不會轉(zhuǎn)換操作數(shù),也就是在不轉(zhuǎn)換的前提下直接進行全等或不全等的比較。
全等
符號:===
let str1="1" let str2=1 console.log(str1===str2) //false
不全等
符號:!==
let str1="1" let str2=1 console.log(str1!==str2) //true
相等和不相等
相等和不相等操作符也同樣是比較兩個操作數(shù),以相等操作符為例,如果兩個操作數(shù)滿足相等則返回true,否則返回false。不過與全等和不全等操作符的區(qū)別在于:相等和不相等操作符會先對操作數(shù)進行強制類型轉(zhuǎn)換,轉(zhuǎn)后的操作數(shù)再進行比較。
相等
符號:==
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 先是類型轉(zhuǎn)換,之后進行比較 console.log(str1!==str2) //true 對于全等操作福這兩個操作數(shù)不進行強制類型轉(zhuǎn)換,自然就不全等 console.log(str2!=str3) //true console.log(str2!==str3) //true
對于相等和不相等操作符對操作數(shù)進行強制類型轉(zhuǎn)換的規(guī)則如下:
布爾值會直接轉(zhuǎn)換成數(shù)值進行比較:false:0;true:1
字符串遇到數(shù)值則會轉(zhuǎn)換為數(shù)值再進行比較
對于對象,如果兩個操作數(shù)都是對象則比較二者是否為同一個對象,如果兩個操作數(shù)指向同一個對象則返回true,否則返回false。如果其中的一個操作數(shù)為對象則會調(diào)用valueOf方法取到原始值,之后再進行比較(按照上述規(guī)則)
const p = new Object('zhangsan') //相當(dāng)于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是相等的,但是無論和誰比較,他們都不會被強轉(zhuǎn)。
console.log(null==undefined) //true console.log(null===undefined) //false 對于全等返回結(jié)果依然是false
對于NaN,NaN不等于任何值包括他自己。涉及到操作符是NaN的比較,只要是相等操作符則返回false,不相等則返回true
console.log(NaN==NaN) //false console.log(NaN!='') //true console.log(NaN!=1) //true console.log(NaN!={}) //true
到此這篇關(guān)于JS中的全等和不全等、等于和不等于的文章就介紹到這了,更多相關(guān)js 全等和不全等、等于和不等于內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
實例代碼詳解javascript實現(xiàn)窗口抖動及qq窗口抖動
這篇文章主要介紹了實例代碼詳解javascript實現(xiàn)窗口抖動及qq窗口抖動的相關(guān)資料,需要的朋友可以參考下2016-01-01H5基于iScroll實現(xiàn)下拉刷新和上拉加載更多
這篇文章主要為大家詳細介紹了H5基于iScroll實現(xiàn)下拉刷新和上拉加載更多效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07基于d3.js/neovis.js/neod3.js實現(xiàn)鏈接neo4j圖形數(shù)據(jù)庫的圖像化顯示功能
neovis.js?由vis.js支持的圖形可視化以及來自Neo4j的數(shù)據(jù)。這篇文章主要介紹了基于d3.js/neovis.js/neod3.js實現(xiàn)鏈接neo4j圖形數(shù)據(jù)庫的圖像化顯示功能,需要的朋友可以參考下2022-02-02js使用for循環(huán)及if語句判斷多個一樣的name
這篇文章主要介紹了js使用for循環(huán)機if語句判斷多個一樣的name,此法比較實用,需要的朋友可以參考下2014-09-09