前言
最近在做一個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來判斷數組不為空。這兩個方法哪種好尼?我也不是說不出來,或者有沒有其他大神有更好的方法,敬請賜教啊!
