JS中的==運(yùn)算: [''] == false —>true

計(jì)算下面表達(dá)式的值:
[''] == false
首先,兩個(gè)操作數(shù)分別是對(duì)象類(lèi)型、布爾類(lèi)型。根據(jù)圖1,需要將布爾類(lèi)型轉(zhuǎn)為數(shù)字類(lèi)型,而false轉(zhuǎn)為數(shù)字的結(jié)果是0,所以表達(dá)式變?yōu)椋?/p>
[''] == 0
兩個(gè)操作數(shù)變成了對(duì)象類(lèi)型、數(shù)字類(lèi)型。根據(jù)圖1,需要將對(duì)象類(lèi)型轉(zhuǎn)為原始類(lèi)型:
首先調(diào)用[].valueOf(),由于數(shù)組的valueOf()方法返回自身,所以結(jié)果不是原始類(lèi)型,繼續(xù)調(diào)用[].toString()。
對(duì)于數(shù)組來(lái)說(shuō),toString()方法的算法,是將每個(gè)元素都轉(zhuǎn)為字符串類(lèi)型,然后用逗號(hào)','依次連接起來(lái),所以最終結(jié)果是空字符串'',它是一個(gè)原始類(lèi)型的值。
此時(shí),表達(dá)式變?yōu)椋?/p>
'' == 0
兩個(gè)操作數(shù)變成了字符串類(lèi)型、數(shù)字類(lèi)型。根據(jù)圖1,需要將字符串類(lèi)型轉(zhuǎn)為數(shù)字類(lèi)型,前面說(shuō)了空字符串變成數(shù)字是0。于是表達(dá)式變?yōu)椋?/p>
0 == 0
到此為止,兩個(gè)操作數(shù)的類(lèi)型終于相同了,結(jié)果明顯是true。
相關(guān)文章
javascript設(shè)計(jì)模式之module(模塊)模式
這篇文章主要為大家詳細(xì)介紹了javascript設(shè)計(jì)模式之module(模塊)模式 ,感興趣的小伙伴們可以參考一下2016-08-08
javascript中call apply 的應(yīng)用場(chǎng)景
call, apply都屬于Function.prototype的一個(gè)方法,它是JavaScript引擎內(nèi)在實(shí)現(xiàn)的,因?yàn)閷儆贔unction.prototype,所以每個(gè)Function對(duì)象實(shí)例,也就是每個(gè)方法都有call, apply屬性.2015-04-04
Javascript 兩個(gè)窗體之間傳值實(shí)現(xiàn)代碼
眾所周知window.open() 函數(shù)可以用來(lái)打開(kāi)一個(gè)新窗口,那么如何在子窗體中向父窗體傳值呢,其實(shí)通過(guò)window.opener即可獲取父窗體的引用。2009-09-09
跟我學(xué)習(xí)javascript的作用域與作用域鏈
跟我學(xué)習(xí)javascript的作用域與作用域鏈,感興趣的小伙伴們可以參考一下2015-11-11
JavaScript實(shí)現(xiàn)刮刮樂(lè)效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)刮刮樂(lè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
IE中createElement需要注意的一個(gè)問(wèn)題
最近有讀者求助,說(shuō)在iframe中,創(chuàng)建一個(gè)元素,然后添加到父頁(yè)面中在ie6,ie7中行不通,而firefox和IE8可以。2010-07-07
JavaScript實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)表格某行時(shí)此行變色
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)表格某行時(shí)此行變色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
JavaScript 用fetch 實(shí)現(xiàn)異步下載文件功能
本文通過(guò)實(shí)例代碼給大家介紹了JavaScript 用fetch 實(shí)現(xiàn)異步下載文件功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-07-07

