JS空数组的判断

前言

  最近在作一个mini项目,被大神各类鄙视,基础知识确实是不扎实,加油加油。好了,很少废话,抽空写写遇到的两个知识点,就记录下来,写博客仍是能帮忙整理记录的,否则过了就忘记了。数组

input监听值改变事件

1.onchange事件

  开始使用的就是该事件,这个事件能够监听到input标签里面的值改变,可是有一个必须是当前元素失去了焦点(onblur)时才能够激活这个事件,因此有的时候体验很很差,如个人需求是input标签值不为空的时候,个人checkbox标签就能够点击了,这时就必须是在input外面点击一下触发该事件,而后才能去点击个人checkbox标签。体验很很差,因此放弃该事件。spa

2.oninput和onpropertychange事件

  这两个事件就能够知足咱们的需求了,input值改变时实时的触发该事件,onpropertychange是IE下的方法。code

判断数组为空

  以下代码所示: 对象

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。blog

     在进行数组直接与true和false的布尔类型比较时,默认是将数组和布尔类型都转化为了Number类型进行比较,空数组转化为Number类型时为0。事件

    因此咱们能够经过arr == true来判断数组不为空,或者我想到的另外一个也能够经过arr.length !== 0来判断数组不为空。这两个方法哪一种好尼?我也不是说不出来,或者有没有其余大神有更好的方法,敬请赐教啊!input