摘要:比較和是值變量返回或者這樣的比較判斷遵循以下規律如果和的類型一致僅包括。因此,僅根據標準規范,字符串值即可推測為不相等比如不會比較全角和半角的編碼差異。實際上這個算法推測兩端的字符串都已經是普通樣式。
比較 x == y, x 和 y 是值變量,返回 true 或者 false.這樣的比較判斷遵循以下規律:
如果 x 和 y 的類型一致(僅包括Number,String,Null,Undefined,Boolean,Object。Symbol屬于ES6)如果 x 的類型是 Underfined,返回 true.
如果 x 的類型是 Null,返回 true.
如果 x 的類型是 Number,那么:
如果 x 是 NaN,那么返回 false.
如果 y 是 NaN,那么返回 false.
如果 x 和 y 的值相等,那么返回 true.
如果 x 是 +0 且 y 的值是 -0,返回 true.
如果 x 是 -0 且 y 的值是 +0,返回 true.
其他情況返回 false.
如果 x 的類型是 String,那么除非 x 和 y 的字符順序完全相同,且長度相等。否則返回 flase.
如果 x 的類型是 Boolean,如果 x 和 y 都是 true 或 false.否則返回 flase.
如果 x 和 y 引用自相同 Object,返回 true.
如果 x 為 null 且 y 為 underfined,返回 true. 如果 x 為 underfined 且 y 為 null,返回 true. 如果 x 的類型為 Number 且 y 的類型為 String,返回的結果為 x == ToNumber(y). 如果 x 的類型為 String 且 y 的類型為 Number,返回的結果為 ToNumber(x) == y. 如果 x 的類型為 Boolean,返回的結果為 ToNumber(x) == y. 如果 y 的類型為 Boolean,返回的結果為 x == ToNumber(y). 如果 x 的類型為 String 或者 Number 且 y 的類型是 Object,返回的結果是 x == ToPrimitive(y). 如果 x 的類型為 Object 且 y 的類型是 String 或者 Number,返回的結果是 ToPrimitive(x) == y. 除以上情況,全部返回 false. TIPS
以下類型轉換規則
字符串類型比較可以是: "" + a == "" + b
數字類型比較可以是: +a == +b
布爾類型比較可以是: !a == !b
以下操作等式結果不變
!= B 的結果與 !(A==B) 相同
== B 的結果與 B == A 相同,除了對A和B的判定順序有區別以外其他等同
等式操作的傳遞性并不總是正確的.比如,存在兩個含有相同字符的字符串對象;每一個字符串對象都可以被認為等同于該字符,但兩個字符串對象并不相等:
new String("a") == "a" 與 "a" == new String("a") 結果都為 true.
new String("a") == new String("a") 的結果卻是 false.
字符串的比較僅僅是簡單的順序比較每個字符的值。并沒有嘗試使用更加復雜的,以語義為導向的字符定義或是字符串同性測試或是整理 Unicode 碼的定義順序。因此,僅根據Unicode標準規范,字符串值即可推測為不相等(比如不會比較全角和半角的編碼差異)。實際上這個算法推測兩端的字符串都已經是普通樣式。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90309.html
摘要:創建對象的兩種方式推薦該構造器可以接受任何類型的參數,并且會自動識別參數的類型,并選擇更合適的構造器來完成相關操作。比如二的成員該屬性指向用來構造該函數對象的構造器,在這里為該方法返回的是一個用于描述目標對象的字符串。 之前看到【深度長文】JavaScript數組所有API全解密和JavaScript字符串所有API全解密這兩篇高質量的文章。發現沒寫對象API解析(估計是博主覺得簡單,...
摘要:在有了基礎之后,進一步學習內容包括框架。前端學習交流群禁止閑聊,非喜勿進。代碼提交前必須做的三個事情檢查所有變更跑一邊單元測試手動運行一遍所有 網站開發開發大致分為前端和后端,前端主要負責實現視覺和交互效果,以及與服務器通信,完成業務邏輯。其核心價值在于對用戶體驗的追求。可以按如下思路學習系統學習: 基礎知識: html + css 這部分建議在?w3school 在線教程上學習,邊...
摘要:在有了基礎之后,進一步學習內容包括框架。前端學習交流群禁止閑聊,非喜勿進。代碼提交前必須做的三個事情檢查所有變更跑一邊單元測試手動運行一遍所有 網站開發開發大致分為前端和后端,前端主要負責實現視覺和交互效果,以及與服務器通信,完成業務邏輯。其核心價值在于對用戶體驗的追求。可以按如下思路學習系統學習: 基礎知識: html + css 這部分建議在?w3school 在線教程上學習,邊...
摘要:字段由腳本命令組成的字典,這些命令運行在包的各個生命周期中。在打包過程中,如果遇到字段會優先使用字段表示的路徑下的文件,如果不存在,則用字段表示的作為入口,并按照的規范打包。其中還分析了文件中字段和字段的不同以及和兩個字段的區別。 所有用npm下載的包或者要上傳至npm的模塊都會有一個package.json文件,這個文件總是存在于模塊(或者包)的根目錄下,這個文件到底是干嘛的,現在就...
摘要:結論對于中所說的變量聲明提前,更準確的說法是變量定義聲明提前了,更準確的理解是定義聲明處于程序運行的第一個階段導致相較于賦值聲明的第二階段有了前提的效果。 ES5和ES6中的變量聲明提升 Example1: a=2; var a; console.log( a ); //結果為2 Example2: console.log( a ); //結果是undefined var a=...
閱讀 1480·2021-11-17 09:33
閱讀 1260·2021-10-11 10:59
閱讀 2892·2021-09-30 09:48
閱讀 1904·2021-09-30 09:47
閱讀 3024·2019-08-30 15:55
閱讀 2336·2019-08-30 15:54
閱讀 1492·2019-08-29 15:25
閱讀 1645·2019-08-29 10:57