摘要:相等操作符會有一個隱形的轉換,這個隱形的轉化會導致結果很奇怪。
[0] == true; // false [] == ![]; // true
相等操作符會有一個隱形的轉換,這個隱形的轉化會導致結果很"奇怪"。下面是隱形轉換的基本規則:
其中一個值是boolean值:兩個值都轉為數字,false轉為0,true轉為1
其中一個值是字符串,另一個是數字:都轉為數字再對比
其中一個是對象,另一個不是對象:調用對象的valueof方法,得到基本類型
其中一個是對象,另一個也是對象:對比對象指向的內存地址是否相等
其中一個是null,另一個是undefined:結果為true
NaN與任何類型(包括本身NaN)都不相等
null,undefined在進行比較的時候,不進行數據類型轉換
輸出結果分析[0] == true; // 最終的對比形式 Number([0]) == Number(true);
[] == ![]; // !的運算級別比 "==" 高,先進行以下轉換 [] == false; // 再轉化為最終的對比形式 Number([]) == Number(false);"奇怪"的結果
undefined == 0; // false null == 0; //false false == 0; //true true == 1; //true true == 2; //false [] == []; //false
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95409.html
摘要:第二篇仿寫生態系列模板小故事本次任務承上完成第一篇未完成的熱更新配置核心完成模板解析模塊的相關編寫很多文章對模板的解析闡述的都太淺了本次我們一起來深入討論一下盡可能多的識別用戶的語句啟下在結構上為雙向綁定等模塊的編寫打基礎最終效果圖一模板頁 ( 第二篇 )仿寫Vue生態系列___模板小故事. 本次任務 承上: 完成第一篇未完成的熱更新配置. 核心: 完成模板解析模塊的相關編寫, ...
摘要:第二篇仿寫生態系列模板小故事本次任務承上完成第一篇未完成的熱更新配置核心完成模板解析模塊的相關編寫很多文章對模板的解析闡述的都太淺了本次我們一起來深入討論一下盡可能多的識別用戶的語句啟下在結構上為雙向綁定等模塊的編寫打基礎最終效果圖一模板頁 ( 第二篇 )仿寫Vue生態系列___模板小故事. 本次任務 承上: 完成第一篇未完成的熱更新配置. 核心: 完成模板解析模塊的相關編寫, ...
摘要:如果我們把非布爾值作為條件呢打開控制臺并運行上述代碼,會打印說明條件為真值。在中,真值指的是在布爾值上下文中轉換后的值為真的值。兩個能夠建立元素間一一對應的集合稱為互相對等集合。 showImg(https://segmentfault.com/img/bVbtSvt?w=720&h=360); 為了保證可讀性,本文采用音譯而非直譯。 Javascript 一直是神奇的語言。 不相信我...
摘要:比如參數表示使用我們通常使用的十進制數值系統。始終指定此參數可以消除閱讀該代碼時的困惑并且保證轉換結果可預測。當未指定基數時,不同的實現會產生不同的結果,通常將值默認為。 showImg(https://segmentfault.com/img/bVbvtHZ?w=536&h=116); 為什么是[1,NaN,NaN]而不是[1,2,3]? 首先看下 Array.map()函數在MD...
閱讀 2380·2019-08-30 15:56
閱讀 1039·2019-08-30 15:55
閱讀 3203·2019-08-30 15:44
閱讀 933·2019-08-30 10:53
閱讀 1888·2019-08-29 16:33
閱讀 2470·2019-08-29 16:13
閱讀 719·2019-08-29 12:41
閱讀 874·2019-08-26 13:56