JS空數組的判斷


前言

  最近在做一個mini項目,被大神各種鄙視,基礎知識確實是不扎實,加油加油。好了,不多廢話,抽空寫寫遇到的兩個知識點,就記錄下來,寫博客還是能幫忙整理記錄的,不然過了就忘記了。

input監聽值改變事件

1.onchange事件

  開始使用的就是該事件,這個事件可以監聽到input標簽里面的值改變,但是有一個必須是當前元素失去了焦點(onblur)時才可以激活這個事件,所以有的時候體驗很不好,如我的需求是input標簽值不為空的時候,我的checkbox標簽就可以點擊了,這時就必須是在input外面點擊一下觸發該事件,然后才能去點擊我的checkbox標簽。體驗很不好,所以放棄該事件。

2.oninput和onpropertychange事件

  這兩個事件就可以滿足我們的需求了,input值改變時實時的觸發該事件,onpropertychange是IE下的方法。

判斷數組為空

  如下代碼所示: 

var arr = new Array();

//輸出為it is true
if(arr){
    console.log("it is true");
}

//輸出為it is false
if(arr == true){
    console.log("it is true")
}else{
    console.log("it is false");
}

Boolean(arr);  //true

Number(arr); //0

Number(false); //0

Number(true); //1

  看到這個結果是不是明白了。在new Array()一個空數組時,是一個Object對象,所以if(arr)時是true。

     在進行數組直接與true和false的布爾類型比較時,默認是將數組和布爾類型都轉化為了Number類型進行比較,空數組轉化為Number類型時為0。

    所以我們可以通過arr == true來判斷數組不為空,或者我想到的另一個也可以通過arr.length !== 0來判斷數組不為空。這兩個方法哪種好尼?我也不是說不出來,或者有沒有其他大神有更好的方法,敬請賜教啊!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM