前言

  最近在做一个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); // Number(false); // Number(true); //

  看到这个结果是不是明白了。在new Array()一个空数组时,是一个Object对象,所以if(arr)时是true。

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

所以我们可以通过arr == true来判断数组不为空,或者我想到的另一个也可以通过arr.length !== 0来判断数组不为空。这两个方法哪种好尼?我也不是说不出来,或者有没有其他大神有更好的方法,敬请赐教啊!

JS空数组的判断的更多相关文章

  1. js 空数组 空对象判断

    js 空数组是true还是false   1 2 var arr = new Array(); // 或 var arr = []; 我们知道,初始化后,即使数组arr中没有元素,也是一个object ...

  2. js空数组

    首先我们定义一个空的数组: var a = [ ]; 数组a里面是空的没有值,接下来我们打印: console.log(!!a); 因为数组是空的,此处应该为false. 恰好相反,!!a为true. ...

  3. js 空数组是true还是false

    var arr = new Array(); // 或 var arr = []; 我们知道,初始化后,即使数组arr中没有元素,也是一个object. typeof arr; // "ob ...

  4. js 对象及空对象或数组及空数组的判断与比较

    工作中经常会使用到,这里记录一下 判断是不是对象: let obj = {}; Object.prototype.toString.call(obj) == "[object Object] ...

  5. js -【 数组】判断一个变量是数组类型的几种方法

    怎么判断一个数组是数组呢? 其实这个也是一个常考的题目.依稀记得我为数不多的面试经过中都被问道过. 方案一: instanceof variable instanceof Array 解决思路: 使用 ...

  6. js 判断是否为空对象、空数组

    当需要判断参数是否为空时,总希望 js 能够提供原生的判断方法,可惜并没有,只能自己封装了. function isEmpty(obj) { // 检验 undefined 和 null if(!ob ...

  7. js中关于假值和空数组的总结

    先上x==y运算符的算法细节: 如果x不是正常值(比如抛出一个错误),中断执行. 如果y不是正常值,中断执行. 如果Type(x)与Type(y)相同,执行严格相等运算x === y. 如果x是nul ...

  8. Js删除数组重复元素的多种方法

    js对数组元素去重有很多种处理的方法,本篇文章中为网络资源整理,当然每个方法我都去实现了:写下来的目的是希望自己活学活用,下次遇到问题后方便解决. 第一种 function oSort(arr){ v ...

  9. js,jQuery数组常用操作小结

    一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ...

随机推荐

  1. [转] eclipce使用vim 开启装逼模式

    原文:http://blog.csdn.net/fatal360/article/details/12321613 1.在eclipse中使用vi模式的插件Vrapper打开eclipse,在Help ...

  2. vim 粘贴复制操作

    原文链接:http://www.cnblogs.com/lansh/archive/2010/08/19/1803378.html vi编辑器有3种模式:命令模式.输入模式.末行模式.掌握这三种模式十 ...

  3. Mono for Android 设计器错误:Disconnected from layout renderer

        今早打开vs2012 android 项目的时候出现如下错误提示:     查了半天,终于在官方网站得到答案.(http://forums.xamarin.com/discussion/143 ...

  4. 《译》准备做一些 AR/增强现实的 翻译

    中文这方面资料实在少之又少. 准备做一些这方面翻译,关注于Vuforia, Unity3d, Hololens等方面. 如有问题.建议,随时联系.Fell free ton contact me.

  5. 送H-1B 及其他I-129 申请别忘用新表

    (梁勇律师事务所,lianglaw.com专稿)移民局从2010年11月23日 更新了申请H-1B 及其他非移民工作签证I-129 表,从2010年12月23日以后收到的I-129表都必须是2010年 ...

  6. Android(java)学习笔记153:采用post请求提交数据到服务器(qq登录案例)

    1.POST请求:  数据是以流的方式写给服务器 优点:(1)比较安全 (2)长度不限制 缺点:编写代码比较麻烦   2.我们首先在电脑模拟下POST请求访问服务器的场景: 我们修改之前编写的logi ...

  7. 【转】CentOS 7.0 安装Redis 3.2.1详细过程和使用常见问题

    http://www.linuxidc.com/Linux/2016-09/135071.htm 环境:CentOS 7.0 Redis 3.2.1 Redis的安装与启动 这里我把Redis放在/h ...

  8. day1总结

    print("hello world") name='王维是傻屌' print(name) age_of_王维是傻屌 = 18 # type:用于判断变量的类型 str1 ='he ...

  9. Linux命令安装vnc服务端与vnc的客户端

    第一歩:运行命令 yum install tigervnc-server -y 第二歩:安装telnet 第三歩:运行vncserver,创建桌面 vncserver -kill :1  删除桌面1的 ...

  10. java Html&JavaScript面试题:判断第二个日期比第一个日期大

    如何用脚本判断用户输入的的字符串是下面的时间格式2004-11-21 必须要保证用户的输入是此格式,并且是时间,比如说月份不大于12等等,另外我需要用户输入两个,并且后一个要比前一个晚,只允许用JAV ...