JavaScript中的操作符==與===介紹
JavaScript中,==與===操作符均可用于判斷兩個(gè)值是否相等;不同之處在于,如果進(jìn)行判斷的兩個(gè)值類型不一致,===操作符會(huì)直接返回false,而==操作符則會(huì)在類型轉(zhuǎn)換后再進(jìn)行判斷。詳細(xì)的判斷規(guī)則如下:
===操作符的判斷規(guī)則
1.如果兩個(gè)值的類型不一致,返回false。
2.如果兩個(gè)值的類型一致,值一致,返回true。NaN是一個(gè)特例,NaN===NaN返回false。
3.如果兩個(gè)值均為object類型,那么與Java一樣,除非兩者引用一致(reference指向同一個(gè)對(duì)象地址),不然即使object中的內(nèi)容完全一樣,也認(rèn)為這兩個(gè)值不一致,相應(yīng)的操作將返回false。比如,新建兩個(gè)內(nèi)容完全一樣的數(shù)組,對(duì)它們進(jìn)行===操作后返回結(jié)果為false — 雖然它們的內(nèi)容完全一樣,但還是屬于兩個(gè)不同的對(duì)象。
4.0===-0返回true。
==操作符的判斷規(guī)則
==操作符會(huì)將值進(jìn)行類型轉(zhuǎn)換后再進(jìn)行比較,其類型轉(zhuǎn)換遵循以下原則:優(yōu)先轉(zhuǎn)換成number后進(jìn)行比較,Date對(duì)象則優(yōu)先轉(zhuǎn)換成string后進(jìn)行比較。具體判斷規(guī)則如下:
1.如果兩個(gè)值類型一致,執(zhí)行===操作后返回。
2.null==undefined為true。
3.true將轉(zhuǎn)換成1后進(jìn)行比較,false將轉(zhuǎn)換成0后進(jìn)行比較。
4.如果其中一個(gè)值為對(duì)象,則將其轉(zhuǎn)換成number后再進(jìn)行比較,Date對(duì)象除外。
5.如果其中一個(gè)值為Date對(duì)象,則將其轉(zhuǎn)換成string后再進(jìn)行比較。
實(shí)驗(yàn)
console.log("3" === 3);//false
console.log(NaN === NaN);//false
var a = {x:1, y:2};
var b = {x:1, y:2};
var c = a;
console.log(a === b);//false
console.log(a === c);//true
console.log(0 === -0);//true
console.log("3" == 3);//true
console.log(null == undefined);//true
console.log(true == 1);//true
console.log(true == 9);//false
console.log([9] == 9);//true
console.log([9] == "9");//true
var d = new Date();
var s = d.toString();
var n = d.valueOf();
console.log(d == s);//true
console.log(d == n);//false
- 詳解js中==與===的區(qū)別
- javascript typeof id===''string''?document.getElementById(id):id解釋
- 淺談JS中的!=、== 、!==、===的用法和區(qū)別
- JavaScript中三個(gè)等號(hào)和兩個(gè)等號(hào)的區(qū)別(== 和 ===)淺析
- JavaScript里 ==與===區(qū)別詳解
- JavaScript知識(shí)點(diǎn)總結(jié)(五)之Javascript中兩個(gè)等于號(hào)(==)和三個(gè)等于號(hào)(===)的區(qū)別
- javascript中if和switch,==和===詳解
- 淺析Javascript中“==”與“===”的區(qū)別
- javascript中等于(==)與全等(===)的區(qū)別說明
- JavaScript.The.Good.Parts閱讀筆記(一)假值與===運(yùn)算符
- JS中==與===操作符的比較
- javaScript中"=="和"==="的區(qū)別詳解
相關(guān)文章
利用JavaScript實(shí)現(xiàn)創(chuàng)建虛擬鍵盤的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)創(chuàng)建虛擬鍵盤,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定幫助,需要的可以參考一下2022-09-09基于element?UI?input組件自行封裝“數(shù)字區(qū)間”輸入框組件的問題及解決
這篇文章主要介紹了基于element?UI?input組件自行封裝“數(shù)字區(qū)間”輸入框組件,實(shí)現(xiàn)代碼可以分為兩塊一塊為組件的封裝代碼,一塊為文中實(shí)現(xiàn)效果的演示代碼,對(duì)element?UI數(shù)字區(qū)間輸入組件相關(guān)知識(shí)感興趣的朋友一起看看吧2022-05-05JavaScript獲取網(wǎng)頁(yè)支持表單字符集的方法
這篇文章主要介紹了JavaScript獲取網(wǎng)頁(yè)支持表單字符集的方法,涉及javascript中acceptCharset方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04微信小程序表單驗(yàn)證form提交錯(cuò)誤提示效果
這篇文章主要為大家詳細(xì)介紹了微信小程序表單驗(yàn)證form提交錯(cuò)誤提示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07JS實(shí)現(xiàn)簡(jiǎn)單的右下角彈出提示窗口完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)簡(jiǎn)單的右下角彈出提示窗口的方法,可實(shí)現(xiàn)點(diǎn)擊連接右下角彈出提示框的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06微信小程序?qū)崿F(xiàn)云開發(fā)上傳文件、圖片功能
在使用小程序的過程中,在編輯個(gè)人資料時(shí),通常會(huì)面臨上傳頭像、上傳背景圖片的情況,而這個(gè)開發(fā)過程需要怎樣實(shí)現(xiàn)呢?這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)云開發(fā)上傳文件、圖片功能的相關(guān)資料,需要的朋友可以參考下2022-12-12詳細(xì)談?wù)凟S6中的symbol數(shù)據(jù)類型
這篇文章主要給大家介紹了關(guān)于ES6中symbol數(shù)據(jù)類型的相關(guān)資料,Symbol函數(shù)的特性是每一個(gè)Symbol函數(shù)的返回值都是唯一的,可以通過給symbol函數(shù)傳遞不同的參數(shù)產(chǎn)生具有不同標(biāo)記的值,需要的朋友可以參考下2021-08-08