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 读取图片文件的大小
Jun 25 Javascript
javascript AOP 实现ajax回调函数使用比较方便
Nov 20 Javascript
ajax中get和post的说明及使用与区别
Dec 23 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
Jun 29 Javascript
JS运动特效之同时运动实现方法分析
Jan 24 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
Feb 27 Javascript
vue单页面在微信下只能分享落地页的解决方案
Apr 15 Javascript
Vue响应式原理Observer、Dep、Watcher理解
Jun 06 Javascript
浅谈JS中this在各个场景下的指向
Aug 14 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
Apr 22 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 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中的路径问题与set_include_path使用介绍
2014/02/11 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
session 加入redis的实现代码
2016/07/15 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
php数组遍历类与用法示例
2019/05/24 PHP
零基础php编程好学吗
2019/10/11 PHP
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
Python中zip()函数用法实例教程
2014/07/31 Python
Python实现字典依据value排序
2016/02/24 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
金山毒霸系列的笔试题
2013/04/13 面试题
敬业奉献模范事迹材料
2014/12/24 职场文书
募捐感谢信
2015/01/22 职场文书
社会实践活动总结
2015/02/05 职场文书
2015年推普周活动总结
2015/03/27 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
行政处罚告知书
2015/07/01 职场文书
中学校园广播稿
2015/08/18 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
SpringAop日志找不到方法的处理
2021/06/21 Java/Android