== 和 === 操作符詳細解析
== 和 === 他們倆到底有什麼樣的卻別,其實在之前還是 == 接觸的比較多.包括在使用其他程式語言. === 似乎是在Javascript獨有的.那我們來看看他們到底有什麼不同.
簡單來說, == 不會檢查型別, === 會檢測比較的兩方是否型別相同. 因此, == 比較也是可以的. 但是在JS引擎下它們將轉換為相同的型別進行比較.
=== 比較型別和值.因此,加入兩邊型別不同,答案永遠是false. 例如比較兩個字串,他們必須是同一字元的集合.另外的原始(number,boolean)必須分配同樣的值.
強制規則: 在JS引擎下隱式型別轉換使用 == 作比較.強制型別轉換使用下面的規則:
a) 如果兩個操作物件是同樣型別使用 ===
b) undefined == null
c) 如果一個操作物件是字串,另外一個是數字,將字串轉換為數字.
d) 如果一個是布林型別,另外一個不是布林型別,將布林型別轉換為數字,再作比較.
e) 當物件與一個字串或者數字作比較,試著將物件轉換為一個原始型別,在試著比較.
當比較物件時,要小心注意,識別符號必須引用同樣的物件或者同樣的陣列.
注意: NaN,null和undefined永遠不=== 其他型別. NaN 甚至不等於(===)它自己.
相關文章
- dnsmasq劫持和dns教程詳細解析DNS
- 詳細解析kafka之kafka分割槽和副本Kafka
- Argo workflow 案例練習和配置詳細解析Go
- CoreLocation框架詳細解析框架
- Semaphore最詳細解析
- RxLifecycle詳細解析
- SAP BOM詳細解析
- java中for迴圈和ArrayList的詳細解析案例Java
- MySQL:排序(filesort)詳細解析MySql排序
- scala模式匹配詳細解析模式
- mysql日誌詳細解析MySql
- 超詳細 DNS 協議解析DNS協議
- Hadoop Yarn框架詳細解析HadoopYarn框架
- MyBatis詳細原始碼解析(上篇)MyBatis原始碼
- 網址(URL)的詳細解析
- 詳細的AWR解析報告
- AFNetworking框架-詳細解析框架
- 【原始碼解析】- ArrayList原始碼解析,絕對詳細原始碼
- SAP 中利潤中心 詳細解析
- PE檔案格式詳細解析(一)
- Android UI——SpannableString詳細解析AndroidUI
- 超詳細SAP HANA JOB全解析
- linux命令yum的詳細解析Linux
- CountDownLatch、CyclicBarrier、Semaphore、Exchanger 的詳細解析CountDownLatch
- MySQL索引機制(詳細+原理+解析)MySql索引
- 超詳細的Eureka原始碼解析原始碼
- jquery.cookie.js用法詳細解析jQueryCookieJS
- JavaScript中依賴注入詳細解析JavaScript依賴注入
- PanoramaGL library類庫詳細解析
- 操作符詳解
- PE檔案格式詳細解析(二)--IAT
- 關於SAP clienyt copy詳細解析
- OpenIddict 登入及詳細流程解析
- 詳細解析DES系列加密技術(二)加密
- 使用廣播-BroadcastReceiver最詳細解析AST
- 詳細解析DES系列加密技術(一)加密
- 渲染樹與css解析詳細介紹CSS
- SwiftUI 官方畫圖例項詳細解析SwiftUI