在javascript中:
以下內(nèi)容會(huì)被當(dāng)成false處理:"" , false , 0 , null , undefined , NaN
其他都是true。注意:字符串"false"也會(huì)被當(dāng)做true處理,在未轉(zhuǎn)型的情況下他是字符串,屬于一個(gè)對象,所以是true。
所以:
a || b:如果a是true,那么b不管是true還是false,都返回true。因此不用判斷b了,這個(gè)時(shí)候剛好判斷到a,因此返回a。
如果a是false,那么就要判斷b,如果b是true,那么返回true,如果b是false,返回false,其實(shí)不就是返回b了嗎。
a && b:如果a是false,那么b不管是true還是false,都返回false,因此不用判斷b了,這個(gè)時(shí)候剛好判斷到a,因此返回a。
如果a是true,那么就要在判斷b,和剛剛一樣,不管b是true是false,都返回b。