国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

簡單說 !![]==true 與 []==true 引發(fā)的思考

lbool / 1540人閱讀

摘要:簡單說中的與方法我們一句一句的看結(jié)果是邏輯非,會將操作數(shù)的布爾值求反,而就是類型轉(zhuǎn)換,將對應(yīng)的類型轉(zhuǎn)換為型所以我們看一看,一次求反返回的就是,再求反返回的就是。原始值不可變更的值,包括布爾值數(shù)字和字符串。

說明

直接說出問題

!![] == true //結(jié)果是true 
[] == true   //結(jié)果是false 
![] == []    //結(jié)果是true

為什么會出現(xiàn)這種情況

解釋

首先說一下,如果你看到這些代碼,能想到 相等運算符(== ),兩個操作數(shù)類型不同時,進(jìn)行的轉(zhuǎn)換,那么你已經(jīng)接近答案了。

不要浪費時間,我們需要先知道在JavaScript中的一些比較特別的類型轉(zhuǎn)換,最好能記住哦?。?!

[] 轉(zhuǎn)為字符串是 ""       // String([]) 返回""
[] 轉(zhuǎn)為數(shù)字是 0            // Number([]) 返回0
[] 轉(zhuǎn)為布爾值是 true        // Boolean([]) 返回true
true 轉(zhuǎn)為數(shù)字是 1       // Number(true) 返回1
false 轉(zhuǎn)為數(shù)字是 0      // Number(false) 返回0

如果想知道為什么,請點這里。
簡單說 JavaScript中的tostring( ) 與 valueOf( )方法

我們一句一句的看

!![] == true //結(jié)果是true
! (邏輯非),會將操作數(shù)的布爾值求反,而!! 就是類型轉(zhuǎn)換,將對應(yīng)的類型轉(zhuǎn)換為boolean型
所以我們看一看,[ ]一次求反 (![]) 返回的就是false,再求反(!![]) 返回的就是true。
最后的比較就變成 true == true 自然結(jié)果是 true

[]==true //結(jié)果是false
這里我們重點說說,相等運算符(==) 在遇到兩個操作數(shù)類型不同的時候,要遵守的規(guī)則和類型轉(zhuǎn)換
1、如果-個值是null, 另一個是undefined,則它們相等
null == undefined //返回true
2、如果一個值是數(shù)字,另一個是字符串,先將字符串轉(zhuǎn)換為數(shù)字,然后使用轉(zhuǎn)換后的值進(jìn)行比較。

1 == "1" //1==1  //結(jié)果是true
2 == "1" //2==1  //結(jié)果是false

3、如果其中一個值是true,則將其轉(zhuǎn)換為1再進(jìn)行比較。如果其中一個值是false,則將其轉(zhuǎn)換為0再進(jìn)行比較。

"1" == true     //1==1 結(jié)果是true
0 == false      //0==0 結(jié)果是true

4、如果一個值是對象,另一個值是數(shù)字或字符串,則將對象轉(zhuǎn)換為原始值,然后再進(jìn)行比較。對象通過toString()方法或者valueOf()方法轉(zhuǎn)換為原始值,JavaScript語言核心的內(nèi)置類先嘗試使用valueOf(),再嘗試使用toString(),除了日期類,日期類只能使用toString()轉(zhuǎn)換,那些不是JavaScript語言核心中的對象則通過各自的實現(xiàn)中定義的方法轉(zhuǎn)換為原始值。

原始值:不可變更的值,包括undefined、null、布爾值、數(shù)字、和字符串。

所有的對象都有toString() valueOf()這兩個方法。
toString()方法的作用是,返回一個反映這個對象的字符串。
valueOf()方法的作用是,一個對象那個如果存在任意原始值,它就默認(rèn)將對象轉(zhuǎn)換為表示它的原始值。

5、其他不同類型之間的比較均不相等。

好的,我們知道這些規(guī)則后,再來看行代碼
[]==true //結(jié)果是false
true 會轉(zhuǎn)為1
[ ] 會轉(zhuǎn)為 0
最后是比較的是 0 == 1,所以結(jié)果是false

理解了上面的內(nèi)容的話,那么
![] == [] //結(jié)果是true
這行代碼,也就好理解了
![ ] ,也就是 [] 先轉(zhuǎn)為 布爾值(true),然后求反,就是false,false 轉(zhuǎn)為數(shù)字就是0
[ ]轉(zhuǎn)為數(shù)字就是0
最后就是 0 == 0 ,所以結(jié)果就是true

總結(jié)

強調(diào)一點,[ ] 轉(zhuǎn)數(shù)字 是0,轉(zhuǎn)布爾值,是true,但是這不是說, 0 轉(zhuǎn)為布爾值是true,而是false,是false,false。

這篇文章主要是說一些關(guān)于隱式轉(zhuǎn)換的事。
根據(jù)上面的三行代碼,還能寫出一些其他的來,看看下面這些有趣的代碼吧。

[] == 0      //返回結(jié)果是 true
![] == 0     //返回結(jié)果是 true
[] == ""     //返回結(jié)果是 true
!![] == ""   //返回結(jié)果是 false
"" == true   //返回結(jié)果是 false

文章不長主要是想說清楚,最開始提到的問題。
最后推薦兩篇相關(guān)的文章,希望對大家有所幫助。
簡單說 JavaScript中的tostring( ) 與 valueOf( )方法
簡單說 通過JS的隱式轉(zhuǎn)換,關(guān)鍵時刻救你一命

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/89503.html

相關(guān)文章

  • 簡單 !![]==true []==true 引發(fā)思考

    摘要:簡單說中的與方法我們一句一句的看結(jié)果是邏輯非,會將操作數(shù)的布爾值求反,而就是類型轉(zhuǎn)換,將對應(yīng)的類型轉(zhuǎn)換為型所以我們看一看,一次求反返回的就是,再求反返回的就是。原始值不可變更的值,包括布爾值數(shù)字和字符串。 說明 直接說出問題 !![] == true //結(jié)果是true [] == true //結(jié)果是false ![] == [] //結(jié)果是true 為什么會出現(xiàn)這種情...

    gnehc 評論0 收藏0
  • 簡單 !![]==true []==true 引發(fā)思考

    摘要:簡單說中的與方法我們一句一句的看結(jié)果是邏輯非,會將操作數(shù)的布爾值求反,而就是類型轉(zhuǎn)換,將對應(yīng)的類型轉(zhuǎn)換為型所以我們看一看,一次求反返回的就是,再求反返回的就是。原始值不可變更的值,包括布爾值數(shù)字和字符串。 說明 直接說出問題 !![] == true //結(jié)果是true [] == true //結(jié)果是false ![] == [] //結(jié)果是true 為什么會出現(xiàn)這種情...

    APICloud 評論0 收藏0
  • 簡單 通過JS隱式轉(zhuǎn)換,關(guān)鍵時刻救你一命

    摘要:說明在比較的時候,會進(jìn)行隱式轉(zhuǎn)換,你如果對隱式轉(zhuǎn)換不是特別熟悉,結(jié)果往往出乎你的意料。解釋相信我,這行代碼是簡單的,它并不復(fù)雜,我們先來分解一下這行代碼我們把這一行,分解成了行了。簡單說中的與方法簡單說與引發(fā)的思考 說明 JavaScript在比較的時候,會進(jìn)行隱式轉(zhuǎn)換,你如果對隱式轉(zhuǎn)換不是特別熟悉,結(jié)果往往出乎你的意料。 我們來看看這行代碼 (![]+[])[+!![]- -+!!...

    fuyi501 評論0 收藏0
  • 簡單 通過JS隱式轉(zhuǎn)換,關(guān)鍵時刻救你一命

    摘要:說明在比較的時候,會進(jìn)行隱式轉(zhuǎn)換,你如果對隱式轉(zhuǎn)換不是特別熟悉,結(jié)果往往出乎你的意料。解釋相信我,這行代碼是簡單的,它并不復(fù)雜,我們先來分解一下這行代碼我們把這一行,分解成了行了。簡單說中的與方法簡單說與引發(fā)的思考 說明 JavaScript在比較的時候,會進(jìn)行隱式轉(zhuǎn)換,你如果對隱式轉(zhuǎn)換不是特別熟悉,結(jié)果往往出乎你的意料。 我們來看看這行代碼 (![]+[])[+!![]- -+!!...

    geekidentity 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<