空數(shù)組的判斷問題([]==false)

先拋出兩個(gè)問題:
1.[]==false 是否成立
2.if([]){ console.log('123') } 能否打印

結(jié)果:其實(shí)第一個(gè)是成立的,第二個(gè)也是能打印的,那么問題來了,既然空數(shù)組等于false成立,為什么還能執(zhí)行if里的語句呢?

要解答這個(gè)看似矛盾的問題,需要從相等操作符和if語句的條件表達(dá)式說起

相等操作符比較規(guī)則
1.如果有個(gè)操作數(shù)是布爾值,則在比較相等性之前,先將其轉(zhuǎn)為數(shù)值,false->0,true->1
2.如果一個(gè)操作數(shù)是字符串,另一個(gè)操作數(shù)是數(shù)值,在比較相等性之前,先將字符串轉(zhuǎn)為數(shù)值
3.如果一個(gè)操作數(shù)是對(duì)象,另一個(gè)操作數(shù)不是,則調(diào)用對(duì)象的valueOf()方法,用得到的基本類型值按照前面的規(guī)則進(jìn)行比較
4.null和undefined是相等的,且在比較之前不能將其轉(zhuǎn)換為其他任何值
5.如果一個(gè)操作數(shù)是NaN,則相等操作符返回false,注意NaN不等于NaN
6.如果兩個(gè)操作數(shù)都是對(duì)象,則比較它們是不是同一對(duì)象,如果兩個(gè)操作數(shù)都指向同一個(gè)對(duì)象,則相等操作符返回true,否則返回false
額外點(diǎn):===僅比較而不轉(zhuǎn)換
第一個(gè)問題可以用以上的3和1來解答

[].valueOf()   //返回?cái)?shù)組對(duì)象本身
Number(false)    //0
Number([].valueOf())   //0

if語句的條件表達(dá)式,js會(huì)自動(dòng)調(diào)用Boolean()將條件表達(dá)式轉(zhuǎn)換為布爾值

Boolean([])   //true    故第二個(gè)問題可以打印

對(duì)于任何不是null的對(duì)象,Boolean()都可將其轉(zhuǎn)換為true
那么再拋一個(gè)問題:
if(-1){ console.log('123') } 會(huì)打印嗎
其實(shí)同樣會(huì)打印
注意:對(duì)于數(shù)字類型的值,除了0和NaN,Boolean()都可將其轉(zhuǎn)換為true

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、標(biāo)識(shí)符 標(biāo)識(shí)符是指變量、函數(shù)、屬性的名字,或函數(shù)的參數(shù)。 格式規(guī)則: 第一個(gè)字符必須是一個(gè)字母、下劃線(_)或...
    風(fēng)中丶凌亂閱讀 1,746評(píng)論 0 0
  • 本章內(nèi)容 語法 數(shù)據(jù)類型 流控制語句 理解函數(shù) 3.1 語法 3.1.1 區(qū)分大小寫 區(qū)分大小寫 3.1.2 標(biāo)識(shí)...
    悶油瓶小張閱讀 793評(píng)論 0 0
  • 1、標(biāo)識(shí)符 標(biāo)識(shí)符是指變量、函數(shù)、屬性的名字,或函數(shù)的參數(shù)。 格式規(guī)則: 第一個(gè)字符必須是一個(gè)字母、下劃線(_)或...
    霜天曉閱讀 760評(píng)論 0 0
  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,237評(píng)論 0 38
  • 第1章 JavaScript 簡(jiǎn)介 JavaScript 具備與瀏覽器窗口及其內(nèi)容等幾乎所有方面交互的能力。 歐洲...
    力氣強(qiáng)閱讀 1,282評(píng)論 0 0

友情鏈接更多精彩內(nèi)容