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