摘要:對(duì)于兩個(gè)數(shù)值相同的數(shù)字應(yīng)該使用嚴(yán)格比較運(yùn)算符,和任何值不相等,包括其自身,正數(shù)零等于負(fù)數(shù)零。對(duì)于和類型而言,應(yīng)使用嚴(yán)格比較運(yùn)算符比較其自身,使用比較運(yùn)算符進(jìn)行互相比較。
嚴(yán)格比較運(yùn)算符 ===
僅當(dāng)兩個(gè)操作數(shù)的類型相同且值相等為 true,不做類型轉(zhuǎn)換,比較容易理解
類型轉(zhuǎn)換比較運(yùn)算符 ==當(dāng)比較數(shù)字和字符串時(shí),字符串會(huì)轉(zhuǎn)換成數(shù)字值。 JavaScript 嘗試將數(shù)字字面量轉(zhuǎn)換為數(shù)字類型的值。 首先, 一個(gè)數(shù)學(xué)上的值會(huì)從數(shù)字字面量中衍生出來,然后得到被四舍五入后的數(shù)字類型的值。
如果其中一個(gè)操作數(shù)為布爾類型,那么布爾操作數(shù)如果為true,那么會(huì)轉(zhuǎn)換為1,如果為false,會(huì)轉(zhuǎn)換為整數(shù)0,即0。
如果一個(gè)對(duì)象與數(shù)字或字符串相比較,JavaScript會(huì)嘗試返回對(duì)象的默認(rèn)值。操作符會(huì)嘗試通過方法valueOf和toString將對(duì)象轉(zhuǎn)換為其原始值(一個(gè)字符串或數(shù)字類型的值)。如果嘗試轉(zhuǎn)換失敗,會(huì)產(chǎn)生一個(gè)運(yùn)行時(shí)錯(cuò)誤。
注意:當(dāng)且僅當(dāng)與原始值比較時(shí),對(duì)象會(huì)被轉(zhuǎn)換為原始值。當(dāng)兩個(gè)操作數(shù)均為對(duì)象時(shí),它們作為對(duì)象進(jìn)行比較,僅當(dāng)它們引用相同對(duì)象時(shí)返回true。
比較的特點(diǎn)對(duì)于兩個(gè)擁有相同字符順序,相同長度,并且每個(gè)字符的位置都匹配的字符串,應(yīng)該使用嚴(yán)格比較運(yùn)算符。
對(duì)于兩個(gè)數(shù)值相同的數(shù)字應(yīng)該使用嚴(yán)格比較運(yùn)算符,NaN和任何值不相等,包括其自身,正數(shù)零等于負(fù)數(shù)零。
對(duì)于兩個(gè)同為true或同為false的布爾操作數(shù),應(yīng)使用嚴(yán)格比較運(yùn)算符。
不要使用嚴(yán)格比較運(yùn)算符或比較運(yùn)算符來比較兩個(gè)不相等的對(duì)象。
當(dāng)比較一個(gè)表達(dá)式和一個(gè)對(duì)象時(shí),僅當(dāng)兩個(gè)操作數(shù)引用相同的對(duì)象(指針指向相同對(duì)象)。
對(duì)于Null 和 Undefined 類型而言,應(yīng)使用嚴(yán)格比較運(yùn)算符比較其自身,使用比較運(yùn)算符進(jìn)行互相比較。
補(bǔ)充:Boolean對(duì)象Boolean([value]) value 可選,用來初始化 Boolean 對(duì)象的值。
如果第一個(gè)參數(shù)不是布爾值,則會(huì)將其轉(zhuǎn)換為布爾值。
如果省略該參數(shù),或者其值為 0、-0、null、false、NaN、undefined、或者空字符串(""),則生成的 Boolean 對(duì)象的值為 false。
如果傳入的參數(shù)是 DOM 對(duì)象 document.all,也會(huì)生成值為 false 的 Boolean 對(duì)象。
任何其他的值,包括值為 "false" 的字符串和任何對(duì)象,都會(huì)創(chuàng)建一個(gè)值為 true 的 Boolean 對(duì)象。
注意不要將基本類型中的布爾值 true 和 false 與值為 true 和 false 的 Boolean 對(duì)象弄混了。
當(dāng) Boolean 對(duì)象用于條件語句的時(shí)候(譯注:意為直接應(yīng)用于條件語句),任何不是 undefined 和 null 的對(duì)象,包括值為 false 的 Boolean 對(duì)象,都會(huì)被當(dāng)做 true 來對(duì)待。例如,下面 if 語句中的條件為真:
var x = new Boolean(false); if (x) { // 這里的代碼會(huì)被執(zhí)行 }
基本類型的布爾值不受此規(guī)則影響。例如下面的 if 語句的條件為假:
var x = false; if (x) { // 這里的代碼不會(huì)執(zhí)行 }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104840.html
摘要:可以理解為,它們其實(shí)都是表示沒有值沒有值的變量和沒有值的對(duì)象,因此認(rèn)為它們相等。使用運(yùn)算符時(shí),也不必考慮各種復(fù)雜的規(guī)則拼接在使用號(hào)進(jìn)行拼接時(shí),會(huì)先將數(shù)字轉(zhuǎn)換為字符串,再進(jìn)行拼接操作。 在將兩個(gè)類型不同的值進(jìn)行比較時(shí),Js會(huì)自動(dòng)將其中一個(gè)值轉(zhuǎn)換為另一個(gè)值的類型,再進(jìn)行比較 比較數(shù)字與字符串 這種情況下,都會(huì)將字符串轉(zhuǎn)換為數(shù)字,再對(duì)兩個(gè)數(shù)字進(jìn)行比較 99 == 98 99 == 98 fa...
摘要:在設(shè)計(jì)時(shí),有兩種比較運(yùn)算符第一種是比較,它會(huì)自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型再比較,很多時(shí)候,會(huì)得到非常詭異的結(jié)果第二種是比較,它不會(huì)自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型,如果數(shù)據(jù)類型不一致,返回,如果一致,再比較。 數(shù)據(jù)類型和變量 數(shù)據(jù)類型計(jì)算機(jī)顧名思義就是可以做數(shù)學(xué)計(jì)算的機(jī)器,因此,計(jì)算機(jī)程序理所當(dāng)然地可以處理各種數(shù)值。但是,計(jì)算機(jī)能處理的遠(yuǎn)不止數(shù)值,還可以處理文本、圖形、音頻、視頻、網(wǎng)頁等各種各樣的數(shù)據(jù),不同的數(shù)據(jù)...
摘要:在中的關(guān)系比較運(yùn)算,指的是像這種大小值的關(guān)系比較。而相等比較,可區(qū)分為標(biāo)準(zhǔn)相等比較與嚴(yán)格相等比較兩大種類。 在JS中的關(guān)系比較(Relational Comparison)運(yùn)算,指的是像x < y這種大小值的關(guān)系比較。 而相等比較,可區(qū)分為標(biāo)準(zhǔn)相等(standard equality)比較x == y與嚴(yán)格相等(strict equality)比較x === y兩大種類。嚴(yán)格相等比較會(huì)...
摘要:短路運(yùn)算返回值是什么又稱為短路或,短路如果左側(cè)為真,則不再進(jìn)行右側(cè)運(yùn)算,同時(shí)返回左側(cè)表達(dá)式運(yùn)算結(jié)果。上面是不存在的,所有結(jié)果為,轉(zhuǎn)成就是,那么就會(huì)運(yùn)算,把賦值給的同時(shí),返回值也是,所以打印返回結(jié)果是函數(shù)內(nèi)部變量有哪些 DOM元素e的e.getAttribute(propName)和e.propName有什么區(qū)別和聯(lián)系 e.getAttribute(),是標(biāo)準(zhǔn)DOM操作文檔元素屬性的方...
摘要:正確的解釋是允許在相等比較中進(jìn)行強(qiáng)制類型轉(zhuǎn)換,而不允許。參考資料小議下字符串比較大小中的強(qiáng)制類型轉(zhuǎn)換核心概念類型轉(zhuǎn)換對(duì)象和方法隱式類型轉(zhuǎn)換小結(jié) 開胃菜 先說一個(gè)題外話,我在工作中遇到一個(gè)問題,需要比較 08:00 和 09:00 的大小,最后我找到三種方法: 在兩個(gè)字符串前后各拼接相同的年月日和秒,拼成完整的時(shí)間格式進(jìn)行比較: var head = 2016-01-01 var fo...
閱讀 836·2025-02-07 13:29
閱讀 644·2024-11-07 18:25
閱讀 131094·2024-02-01 10:43
閱讀 1060·2024-01-31 14:58
閱讀 1022·2024-01-31 14:54
閱讀 83215·2024-01-29 17:11
閱讀 3497·2024-01-25 14:55
閱讀 2217·2023-06-02 13:36