• 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来判断数组不为空。这两个方法哪种好尼?我也不是说不出来,或者有没有其他大神有更好的方法,敬请赐教啊!

  • 相关阅读:
    事务
    Spring核心之IOC&反射
    jquery中的$().each,$.each的区别
    [转载]tail No space left on device
    nginx apache负载均衡测试
    阿里云配置nginx+php+mysql
    nginx xxx.conf
    [转载]How To Install Nginx And PHP-FPM On CentOS 6 Via Yum
    安装memcached
    安装配置nfs
  • 原文地址:https://www.cnblogs.com/wait-hua/p/5700342.html
Copyright © 2020-2023  润新知