1. 程式人生 > >JS空陣列的判斷

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來判斷陣列不為空