JavaScript知識(shí)點(diǎn)總結(jié)(五)之Javascript中兩個(gè)等于號(hào)(==)和三個(gè)等于號(hào)(===)的區(qū)別
一、JavaScript"=="的作用
1.當(dāng)==兩邊的內(nèi)容是字符串時(shí),則比較字符串的內(nèi)容是否相等。
2.當(dāng)==兩邊的內(nèi)容是數(shù)字時(shí),則比較數(shù)字的大小是否相等。
3.當(dāng)==兩邊的內(nèi)容是對(duì)象或者是對(duì)象的函數(shù)屬性時(shí),則比較內(nèi)存地址是否相等。
二、==和===的區(qū)別
==用于一般比較,===用于嚴(yán)格比較,==在比較的時(shí)候可以轉(zhuǎn)換數(shù)據(jù)類(lèi)型,===嚴(yán)格比較,只要類(lèi)型不匹配就返回flase。
舉例說(shuō)明:
<script type="text/javascript"> alert("\"\"==true的結(jié)果是:"+(""==true)); alert("\"\"===true的結(jié)果是:"+(""===true)); alert("\"\"==的結(jié)果是:"+(""==)); alert("\"\"===的結(jié)果是:"+(""===)); </script>
"1" == true類(lèi)型不同,"=="將先做類(lèi)型轉(zhuǎn)換,把true轉(zhuǎn)換為1,即為 "1" == 1;此時(shí),類(lèi)型仍不同,繼續(xù)進(jìn)行類(lèi)型轉(zhuǎn)換,把"1"轉(zhuǎn)換為1,即為 1 == 1;此時(shí),"==" 左右兩邊的類(lèi)型都為數(shù)值型,比較成功!
"1" === true 左側(cè)為字符型,右側(cè)為bool布爾型,左右兩側(cè)類(lèi)型不同,結(jié)果為false;
"1" === 1 左側(cè)為字符型,右側(cè)為int數(shù)值型,左右兩側(cè)類(lèi)型不同,結(jié)果為false;
運(yùn)行結(jié)果:
總結(jié):
==和===的區(qū)別:"==" 只要求值相等; "===" 要求值和類(lèi)型都相等
下面在給大家詳細(xì)說(shuō)明下JavaScript里面三個(gè)等號(hào)和兩個(gè)等號(hào)的區(qū)別
== equality 等同,=== identity 恒等。
==, 兩邊值類(lèi)型不同的時(shí)候,要先進(jìn)行類(lèi)型轉(zhuǎn)換,再比較。
==,不做類(lèi)型轉(zhuǎn)換,類(lèi)型不同的一定不等。
下面分別說(shuō)明:
先說(shuō) ===,這個(gè)比較簡(jiǎn)單。
下面的規(guī)則用來(lái)判斷兩個(gè)值是否===相等:
1、如果類(lèi)型不同,就[不相等]
2、如果兩個(gè)都是數(shù)值,并且是同一個(gè)值,那么[相等];(!例外)的是,如果其中至少一個(gè)是NaN,那么[不相等]。(判斷一個(gè)值是否是NaN,只能用isNaN()來(lái)判斷)
3、如果兩個(gè)都是字符串,每個(gè)位置的字符都一樣,那么[相等];否則[不相等]。
4、如果兩個(gè)值都是true,或者都是false,那么[相等]。
5、如果兩個(gè)值都引用同一個(gè)對(duì)象或函數(shù),那么[相等];否則[不相等]。
6、如果兩個(gè)值都是null,或者都是undefined,那么[相等]。
再說(shuō) ==,根據(jù)以下規(guī)則:
1、如果兩個(gè)值類(lèi)型相同,進(jìn)行 === 比較。
2、如果兩個(gè)值類(lèi)型不同,他們可能相等。根據(jù)下面規(guī)則進(jìn)行類(lèi)型轉(zhuǎn)換再比較:
a、如果一個(gè)是null、一個(gè)是undefined,那么[相等]。
b、如果一個(gè)是字符串,一個(gè)是數(shù)值,把字符串轉(zhuǎn)換成數(shù)值再進(jìn)行比較。
c、如果任一值是 true,把它轉(zhuǎn)換成 1 再比較;如果任一值是 false,把它轉(zhuǎn)換成 0 再比較。
d、如果一個(gè)是對(duì)象,另一個(gè)是數(shù)值或字符串,把對(duì)象轉(zhuǎn)換成基礎(chǔ)類(lèi)型的值再比較。對(duì)象轉(zhuǎn)換成基礎(chǔ)類(lèi)型,利用它的toString或者valueOf方法。 js核心內(nèi)置類(lèi),會(huì)嘗試valueOf先于toString;例外的是Date,Date利用的是toString轉(zhuǎn)換。非js核心的對(duì)象,
令說(shuō)(比較麻 煩,我也不大懂)
e、任何其他組合,都[不相等]。
舉例:
"1" == true
類(lèi)型不等,true會(huì)先轉(zhuǎn)換成數(shù)值 1,現(xiàn)在變成 "1" == 1,再把"1"轉(zhuǎn)換成 1,比較 1 == 1, 相等。
= 賦值運(yùn)算符
== 等于
=== 嚴(yán)格等于
例:
var a = 3;
var b = "3";
a==b 返回 true
a===b 返回 false
因?yàn)閍,b的類(lèi)型不一樣
===用來(lái)進(jìn)行嚴(yán)格的比較判斷
- javaScript中"=="和"==="的區(qū)別詳解
- 詳解js中==與===的區(qū)別
- javascript typeof id===''string''?document.getElementById(id):id解釋
- 淺談JS中的!=、== 、!==、===的用法和區(qū)別
- JavaScript中三個(gè)等號(hào)和兩個(gè)等號(hào)的區(qū)別(== 和 ===)淺析
- JavaScript里 ==與===區(qū)別詳解
- javascript中if和switch,==和===詳解
- javascript中等于(==)與全等(===)的區(qū)別說(shuō)明
- JS中==與===操作符的比較
- JavaScript中的"=、==、==="區(qū)別講解
相關(guān)文章
如何實(shí)現(xiàn)移動(dòng)端瀏覽器不顯示 pc 端的廣告
隨著移動(dòng)網(wǎng)絡(luò)的發(fā)展,越來(lái)越多的人使用手機(jī)等移動(dòng)端瀏覽網(wǎng)頁(yè)辦公,那么如果在手機(jī)打開(kāi)頁(yè)面的時(shí)候顯示大大的聯(lián)盟廣告,用戶(hù)體驗(yàn)度會(huì)非常差,經(jīng)過(guò)一番研究,用下面的方法實(shí)現(xiàn)了移動(dòng)端瀏覽器不顯示PC端廣告。2015-10-10IE,firefox(火狐)瀏覽器無(wú)提示關(guān)閉窗口js實(shí)現(xiàn)代碼小結(jié)
在不是js打開(kāi)的頁(yè)面上按window.close(),會(huì)有提示框,很煩,現(xiàn)在可以不用了,沒(méi)有提示框直接關(guān)閉窗口。下面腳本之家編輯特為大家整理了一些。2009-09-09基于JavaScript實(shí)現(xiàn)點(diǎn)擊頁(yè)面任何位置返回
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)點(diǎn)擊頁(yè)面任何位置返回的實(shí)例代碼,需要的朋友可以參考下2016-08-08bootstrap配合Masonry插件實(shí)現(xiàn)瀑布式布局
這篇文章主要為大家詳細(xì)介紹了bootstrap配合Masonry插件實(shí)現(xiàn)瀑布式布局,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01