第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一些怪癖的類型轉(zhuǎn)換求解答!

一些怪癖的類型轉(zhuǎn)換求解答!

德瑪西亞99 2019-06-16 08:13:21
收集了一些比較怪的類型轉(zhuǎn)換,我不懂原因,大家討論討論這是為什么?[]==![]//true'1'==true//true'2'==true//false'3'==true//falsenull>=0//true{}+1//1{vara=10}+1//1{}+{}//"[objectObject][objectObject]"+[]//0{}+[]//0[1,2]+[3,4]//"1,23,4"+[2]//2[2]+1//"21"[2]+(-1)//"2-1"null特殊情況+null//0null==0//falsenull>0//falsenull
查看完整描述

2 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗 獲得超5個贊

使用==進(jìn)行比較,如果比較的類型不同,可以分為四種情況1.字符串與數(shù)字之間的相等比較,此時字符串會被強(qiáng)制轉(zhuǎn)換為數(shù)字2.其他類型和布爾值類型之間的相等比較,布爾值會被強(qiáng)制轉(zhuǎn)換為數(shù)字,true轉(zhuǎn)為1,false轉(zhuǎn)為03.null和undefined之間的相等比較,null==undefined返回true4.對象和非對象之間的相等比較,對象需要進(jìn)行ToPrimitive抽象操作(如toString(),valueOf())
根據(jù)上面的四條規(guī)律,來理解下面幾題:
[]==![]相當(dāng)于[]==false相當(dāng)于''==false相等于''==0相當(dāng)于0==0因此結(jié)果為true
'1'==true相當(dāng)于'1'==1相當(dāng)于1==1因此結(jié)果為true
'2'==true相當(dāng)于'2'==1相當(dāng)于2==1因此結(jié)果為false
'3'==true相當(dāng)于'3'==1相當(dāng)于3==1因此結(jié)果為false
根據(jù)規(guī)范a<=b會被當(dāng)做bnull>=0可以理解為!(null<0)。因為null<0為false,所以null>=0結(jié)果為true
使用+操作符時,如果其中一個操作符是對象,那么會先調(diào)用valueOf()方法,如果該方法返回基本類型值,就不再調(diào)用toString()方法。否則就調(diào)用toString()方法(有個例外,Date的實例對象總是先調(diào)用toString,再調(diào)用valueOf)。數(shù)組的valueOf()得不到基本類型值,所以數(shù)組會調(diào)用toString()方法。
{}+1的前面的{}是個空的代碼塊,如果加上換車鍵或許更好理解了。{}回車+1。+1結(jié)果返回1了。
{vara=10}+1道理跟上面一下,前面的{}是個代碼塊,只是后面沒加回車鍵。+1結(jié)果返回1.
{}+{}是兩個空對象相加,分為轉(zhuǎn)為字符串({}).toString(),再相加。結(jié)果為"objectObject"
+[]相當(dāng)于Number([]),結(jié)果為0
{}+[]這里{}依舊是空代碼塊,因此返回+[]的結(jié)果,也就是0
[1,2]+[3,4][1,2]轉(zhuǎn)為字符串'1,2'[3,4]轉(zhuǎn)為字符串'3,4',因此結(jié)果為"1,23,4"
+[2]相當(dāng)于+'2'相當(dāng)于Number('2')因此,結(jié)果為2
[2]+1相當(dāng)于'2'+1因此,結(jié)果為'21'
[2]+(-1)相當(dāng)于'2'+(-1)因此結(jié)果為'2-1'
                            
查看完整回答
反對 回復(fù) 2019-06-16
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗 獲得超4個贊

[]==![]=>[]==false(數(shù)組取反)=>''==false([]轉(zhuǎn)原始值)=>0===0(調(diào)用Number轉(zhuǎn)換)'1'==ture=>1===1(調(diào)用Number)'2'==true=>2===1(調(diào)用Number)'3'==true=>3===1(調(diào)用Number)null>=0=>0>=0(調(diào)用Number){}+1=>+1=>1(前一個{}被認(rèn)為是一個空代碼塊){vara=10}+1=>+1(類似上面等價于"+1"){}+{}=>[objectObject]+[objectObject](左右兩邊被認(rèn)為為對象分別調(diào)用toString()并相加)
[]=>+0(調(diào)用Number)
{}+[]=>+[]("{}"被認(rèn)為是空代碼塊)=>+0(調(diào)用Number)[1,2]+[3,4]=>'1,2'+'3,4'(調(diào)用toString)
[2]=>+2(調(diào)用Number)
[2]+1=>'2'+1(先求原始值調(diào)用toString)=>'21'(存在string優(yōu)先轉(zhuǎn)化為string)[2]+(-1)=>'2'+-1(先求原始值調(diào)用toString)=>'2-1'(存在string優(yōu)先轉(zhuǎn)化為string)
                            
查看完整回答
反對 回復(fù) 2019-06-16
  • 2 回答
  • 0 關(guān)注
  • 365 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號