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 相关文章推荐
基于jquery用于查询操作的实现代码
May 10 Javascript
JavaScript中各种编码解码函数的区别和注意事项
Aug 19 Javascript
事件模型在各浏览器中存在差异
Oct 20 Javascript
JavaScript也谈内存优化
Jun 06 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
javascript设计模式之策略模式学习笔记
Feb 15 Javascript
JS实现的Unicode编码转换操作示例
Apr 28 Javascript
解决React Native端口号修改的方法
Jul 28 Javascript
node爬取新型冠状病毒的疫情实时动态
Feb 06 Javascript
JavaScript中的惰性载入函数及优势
Feb 18 Javascript
全网小程序接口请求封装实例代码
Nov 06 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 curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
js计算精度问题小结
2013/04/22 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Python流程控制 while循环实现解析
2019/09/02 Python
python实现银行实战系统
2020/02/26 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
机电专业个人求职信范文
2013/12/30 职场文书
职务任命书范本
2014/06/05 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
阿凡达观后感
2015/06/10 职场文书
交通安全温馨提示语
2015/07/14 职场文书
意外事故赔偿协议书
2016/03/22 职场文书