前言:

在讲正文之前,我想首先在这里提一下js的几种数据类型。在js中数据一共分为两大类,分别是基本数据类型引用类型——Object

基本数据类型:

  1. Underdined
  2. Null
  3. Boolean
  4. Number
  5. String

引用类型(Object):

  1. Function
  2. Array
  3. Object
  4. Date
  5. RegExp

引用类型大概是这几种,还有基本包装类型也是引用类型的一种,ECMAScript还提供了 3个特殊的引用类型:Boolean、Number和String。

对于基本类型而言,判断变量是否为空数据就很简单了,

let a = '';
let b = 0;
let c = underfined;
let d = null;
let e = false;

由于空数据判断多用在对后台返回的接口数据的判断,所以在这里只讨论字符串、数字0,数组、对象、Null的情况

let a = ''或者 let a = 0 或者 let a = null;1、if( a === '' || a === 0 || a === null) {console.log(a === '' || a === 0 || a === null);  // true
}2、if( !a) {console.log(!a); // true
}对于字符串还有一种方式判断,就是用length属性:
let a = '';
console.log(!a.length);  // true

当变量是空数组或者空对象时, 对变量取反的值是false,即

let arr = [];
let obj = {};
console.log(!arr,!obj); // false  false

原因是 if ( [ ] ) 是判断[ ] 是否是真值,但是假值只有6个,就是 false,undefined,null,0,"",NaN ,因此空数组和空对象都是真值,不能用取反的方式去判断数据是否为空,对于数组可以用lengtn属性去判断。

let arr = [];1、可以使用数组的length属性判断( 已知变量类型是数组 )
console.log(!arr.length); // true
console.log(arr.length === 0); // true2、可以先将其转换成字符串,再与[]比较( 已知变量类型是数组 )
console.log(JSON.stringify(obj) === '[]');  // true

而对于空对象而言,判断方法总结了以下几种:

let obj = {};1、可以先将其转换成字符串,再与{}比较 ( 已知变量类型是对象 )
console.log(JSON.stringify(obj) === '{}');  // true2、可以遍历对象,没有属性的话就是空( 已知变量类型是对象 )
for(let key in obj) {console.log(false);
}
console.log(true);  // true3、ES6的Object.keys()方法,会将对象中的属性转成一个数组,再判断数组是否为空即可( 已知变量类型是对象 )
var arr = Object.keys(obj);
console.log(arr.length === 0);  // true4、与方法3类似,js中有个getOwnPropertyNames()的方法,也是将对象中的除原型属性以外的所有属性转成一个数组( 已知变量类型是对象 )
var arr = Object.getOwnPropertyNames(obj);
console.log(arr.length === 0);  // true

总结:

当然以上大多数方法都是基于已知数据类型的前提下的,当我们不知道数据类型时,还需要额外进行判断,在之后的学习中会总结,有需要的小伙伴可自取。

js之判断数据是否为空相关推荐

  1. js如何判断Object是否为空?

    js如何判断Object是否为空?(属性是否为空) 文章目录 js如何判断Object是否为空?(属性是否为空) 方法一: 最常见的思路,`for...in...` 遍历属性,为真则为"`非 ...

  2. vue 判断json是否为空_vue.js怎么判断对象是否为空?

    vue.js怎么判断对象是否为空?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. vue.js怎么判断对象是否为空? vue有两个方法可用 方法一:JSO ...

  3. PHP 判断数据是否为空 ‘0’判断为空可选

    直接上代码,欢迎批评指正 /*** 判断数据是否为空* @author Lycan ly@lyite.com* @date 2018-09-11** @param null $var 要判断的值* @ ...

  4. js中判断数组是否为空

    在js中判断,一个数组是否为空的方法 我自己用的是 data.length ,通过数组的长度来判断 数组是否为空. var data = [];if(data.length == 0){//data为 ...

  5. JS如何判断一个对象是否为空、是否有某个属性

    一.JS判断一个对象是否为空 方法一: let obj1 = {} let obj2 = {a:1} function empty(obj){for (let key in obj){return f ...

  6. 常用js方法集合,动态加载js方法--判断变量是否为空--截取小数点后几位--截取带中文的字条串...

    /* * 动态加载外部js文件 */loadJS: function(url,id){if(typeof(id)=='undefined'){id = new Date().getTime();}va ...

  7. JS如何判断json是否为空

    1.判断json是否为空 jQuery.isEmptyObject(): 2.遍历json function getHsonLength(json{var jsonLength=0;for (var ...

  8. js 判断数据是否为空

    // var a = ""; // var a = " "; // var a = null; // var a = undefined; // var a = ...

  9. [JS] 如何判断一个对象是否为空

    js判断空对象的几种方法 一.将对象转为字符串比较 let a = {} console.log(JSON.stringify(a) === '{}') //true 二.for-in循环 funct ...

最新文章

  1. python 图像频谱
  2. php中数组的数组元素最多出现2次,出现3次了就把第三次的数组元素去掉
  3. hdu 6406(思路+数据结构)
  4. 什么叫大数据人物画像_大数据时代,如何构建精准用户画像,直击精细化运营...
  5. 学习Linux的途径。
  6. java map存储格式_java HashMap HashSet的存储方式
  7. QC新7大手法全面详解
  8. 使用css画出一条虚线
  9. java 时间计费_java 实现计费算法
  10. 企业快车道上的3个信号灯
  11. 六步绘制漂亮思维导图简单画法
  12. c++ 一个学习小组有5个人,每个人有三门课(高数、英语和C语言)的考试成绩,求每人的平均成绩。按行输出每个学生的各科成绩及平均成绩。
  13. 用计算机实现的动画效果,运用PPT编辑动画效果
  14. 购买新款macbook pro,现在买还是等双十一?
  15. android屏幕颜色过滤调节(可用于护眼模式)
  16. torch.chunk()
  17. Sofa生态: SofaBoot从入门到放弃
  18. 【第十二篇】Flowable事件-定时器事件
  19. web服务器角色源文件,IIS 7.5中提供的Web服务器(IIS)角色服务详请
  20. 数据分析 NO.16 摩拜单车数据分析项目

热门文章

  1. Bootstrap(前端开发框架一)
  2. 莉哥被封、微博暂停未成年人注册,内容平台治理进入深水期
  3. 趋势引领新发展,电商在线客服系统的未来
  4. Linux Shell 单引号 双引号 使用区别
  5. 电磁兼容 (EMC) 行业前景如何?
  6. linux内核最低等级打印信息如何打开?
  7. 基于javaweb的水果蔬菜商城系统(java+ssm+jsp+mysql)
  8. 不花一分钱开12家美容院,一年赚3000万,背后商业模式引发深思!
  9. 类小米模式的高负载单品类商城开发实践
  10. Launcher桌面负一屏实现 第一章