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

  • 相关阅读:
    [原创]SQL经验
    DotNetBar技巧经验集合
    正则表达式的那些小角落
    [转]验证数字的正则表达式集
    项目受源代码管理。向源代码管理注册此项目时出错。建议不要对此项目进行任何更改
    DateGridView的一些技巧
    个人的CodeSmith和.NetTiers的学习心得及经验总结
    常用代码
    mysql 数据库常用命令
    XP2防火墙拒绝网上邻居访问的解决
  • 原文地址:https://www.cnblogs.com/wait-hua/p/5700342.html
Copyright © 2011-2022 走看看