JavaScript判断变量是否为空的自定义函数分享


Posted in Javascript onJanuary 31, 2015

JavaScript本身没有判断一个变量是不是空值的函数,因为变量有可能是string,object,number,boolean等类型,类型不同,判断方法也不同。所以在文章中写了一个函数,用以判断JS变量是否空值,如果是undefined, null, '', NaN,false,0,[],{} ,空白字符串,都返回true,否则返回false

function isEmpty(v) {

    switch (typeof v) {

    case 'undefined':

        return true;

    case 'string':

        if (v.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true;

        break;

    case 'boolean':

        if (!v) return true;

        break;

    case 'number':

        if (0 === v || isNaN(v)) return true;

        break;

    case 'object':

        if (null === v || v.length === 0) return true;

        for (var i in v) {

            return false;

        }

        return true;

    }

    return false;

}

测试:

isEmpty()              //true

isEmpty([])            //true

isEmpty({})            //true

isEmpty(0)             //true

isEmpty(Number("abc")) //true

isEmpty("")            //true

isEmpty("   ")         //true

isEmpty(false)         //true

isEmpty(null)          //true

isEmpty(undefined)     //true

Javascript 相关文章推荐
Javascript 跨域访问解决方案
Feb 14 Javascript
鼠标滑上去后图片放大浮出效果的js代码
May 28 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
读取input:file的路径并显示本地图片的方法
Sep 23 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
Jan 02 Javascript
javascript中Date对象的getDay方法使用指南
Dec 22 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
Nov 04 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
Feb 20 Javascript
基于vue.js中事件修饰符.self的用法(详解)
Feb 23 Javascript
使用Vuex实现一个笔记应用的方法
Mar 13 Javascript
Vue CLI3 如何支持less的方法示例
Aug 29 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
Dec 24 #Javascript
js判断登录与否并确定跳转页面的方法
Jan 30 #Javascript
jQuery知识点整理
Jan 30 #Javascript
浅谈jquery回调函数callback的使用
Jan 30 #Javascript
jQuery修改class属性和CSS样式整理
Jan 30 #Javascript
javascript中AJAX用法实例分析
Jan 30 #Javascript
JavaScript基础函数整理汇总
Jan 30 #Javascript
You might like
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php获取操作系统语言代码
2013/11/04 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
php微信支付接口开发程序
2016/08/02 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
JS实现分页导航效果
2020/02/19 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
python正则表达式match和search用法实例
2015/03/26 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
python基础教程之while循环
2019/08/14 Python
python微信公众号开发简单流程实现
2020/03/09 Python
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
北大自主招生自荐信
2013/10/19 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
饭店工作计划书
2014/01/10 职场文书
导师评语大全
2014/04/26 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
新兵入伍决心书
2015/09/22 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技