JS空陣列的判斷
阿新 • • 發佈:2019-02-07
前言
最近在做一個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來判斷陣列不為空