摘要:原文鏈接鏈接描述總結一下相當于,是對象的默認值。中,若是,則先再其他情況,則先再所以對于來說,是先再,得到的結果是,所以是。而對于來說,根據規范相當于,而為,所以是。
原文鏈接: 鏈接描述
總結一下:
hint:相當于default,是對象的默認值。
OrdinaryToPrimitive(input,hint)中,若hint是string,則先toString再valueOf;其他情況,則先valueOf再toString
所以對于[]來說,是先valueOf再toString,得到的結果是"",所以[]==false是true。
而對于!![]來說,根據規范相當于!!(toBoolean([])),而toBoolean([])為true,所以!![]是true。
下面看一些例子哦~~
[1] + [2] - [3] === 9; // true ,相當于“12” - 3 ,先toString,然后"-"會調用toNumber [1] + [2] === "12"; // true [1] +- [2] === "1-2"; // true,這要使用到Symbol.toPrimitive,這兒我自己還沒太搞明白,后續再補上 1 - [2] === -1; // true
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88081.html
摘要:在比較字符串數值和布爾值的相等性時,問題還比較簡單。但在涉及到對象的比較時,問題就變得復雜了。和是相等的要比較相等性之前,不能將和轉換成其他任何值如果有一個操作數是,則相等操作符返回,而不相等操作符返回。 console.log( [] == ![] ) // true console.log( {} == !{} ) // false 在比較字符串、數值和布爾值的相等性時,問題還...
摘要:上面的理解是錯的,和返回就可以推翻。解釋不清楚和是相等的。和的規則類似,唯一少了轉換的一步。三高級階段參考規范真正理解真的如高設所說的那樣嗎其實不然。來分析一個經典的例子,看完徹底理解的強制轉換。 showImg(https://segmentfault.com/img/remote/1460000011658462?w=512&h=321); 用中文怎么叫合適?相等?全等?其實并不合...
摘要:注釋空數組空對象轉換為布爾型也是坑。系統會在自動類型轉換的時候調用他們,所以我們通常不需要手動調用他們。嚴格相等不存在類型轉換,對于類型不同的兩個值直接返回。 Javascript 中有5種基本類型(不包括 symbol),以及對象類型,他們在不同的運算中會被系統轉化為不同是類型,當然我們也可以手動轉化其類型。 Javascript 類型轉換中的坑極多,就連 Douglas Crock...
摘要:即在這個隱式強制類型轉換中,即不會等于也不會等于。按照正常人類的腦回路,應該是將先轉換為布爾值,然后再將兩個布爾值對比。為什么和就可以避開操作符的坑呢它們進行強制類型轉換時的轉換規則又是怎樣的。 在js中,類型轉換是一個被非常多人詬病的地方。新手看了會發矇,老手看了會頭疼。 類型轉換,又成為強制類型轉換,主要區分為顯式強制類型轉換和隱式強制類型轉換 按我理解,類型轉換的意思就很明顯,就...
閱讀 2978·2023-04-26 02:29
閱讀 589·2019-08-30 15:54
閱讀 1665·2019-08-29 13:13
閱讀 605·2019-08-28 17:51
閱讀 2727·2019-08-26 13:58
閱讀 1536·2019-08-26 13:27
閱讀 2825·2019-08-26 11:39
閱讀 3449·2019-08-26 10:46