js之判断数据是否为空
前言:
在讲正文之前,我想首先在这里提一下js的几种数据类型。在js中数据一共分为两大类,分别是基本数据类型和引用类型——Object。
基本数据类型:
- Underdined
- Null
- Boolean
- Number
- String
引用类型(Object):
- Function
- Array
- Object
- Date
- 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之判断数据是否为空相关推荐
- js如何判断Object是否为空?
js如何判断Object是否为空?(属性是否为空) 文章目录 js如何判断Object是否为空?(属性是否为空) 方法一: 最常见的思路,`for...in...` 遍历属性,为真则为"`非 ...
- vue 判断json是否为空_vue.js怎么判断对象是否为空?
vue.js怎么判断对象是否为空?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. vue.js怎么判断对象是否为空? vue有两个方法可用 方法一:JSO ...
- PHP 判断数据是否为空 ‘0’判断为空可选
直接上代码,欢迎批评指正 /*** 判断数据是否为空* @author Lycan ly@lyite.com* @date 2018-09-11** @param null $var 要判断的值* @ ...
- js中判断数组是否为空
在js中判断,一个数组是否为空的方法 我自己用的是 data.length ,通过数组的长度来判断 数组是否为空. var data = [];if(data.length == 0){//data为 ...
- JS如何判断一个对象是否为空、是否有某个属性
一.JS判断一个对象是否为空 方法一: let obj1 = {} let obj2 = {a:1} function empty(obj){for (let key in obj){return f ...
- 常用js方法集合,动态加载js方法--判断变量是否为空--截取小数点后几位--截取带中文的字条串...
/* * 动态加载外部js文件 */loadJS: function(url,id){if(typeof(id)=='undefined'){id = new Date().getTime();}va ...
- JS如何判断json是否为空
1.判断json是否为空 jQuery.isEmptyObject(): 2.遍历json function getHsonLength(json{var jsonLength=0;for (var ...
- js 判断数据是否为空
// var a = ""; // var a = " "; // var a = null; // var a = undefined; // var a = ...
- [JS] 如何判断一个对象是否为空
js判断空对象的几种方法 一.将对象转为字符串比较 let a = {} console.log(JSON.stringify(a) === '{}') //true 二.for-in循环 funct ...
最新文章
- python 图像频谱
- php中数组的数组元素最多出现2次,出现3次了就把第三次的数组元素去掉
- hdu 6406(思路+数据结构)
- 什么叫大数据人物画像_大数据时代,如何构建精准用户画像,直击精细化运营...
- 学习Linux的途径。
- java map存储格式_java HashMap HashSet的存储方式
- QC新7大手法全面详解
- 使用css画出一条虚线
- java 时间计费_java 实现计费算法
- 企业快车道上的3个信号灯
- 六步绘制漂亮思维导图简单画法
- c++ 一个学习小组有5个人,每个人有三门课(高数、英语和C语言)的考试成绩,求每人的平均成绩。按行输出每个学生的各科成绩及平均成绩。
- 用计算机实现的动画效果,运用PPT编辑动画效果
- 购买新款macbook pro,现在买还是等双十一?
- android屏幕颜色过滤调节(可用于护眼模式)
- torch.chunk()
- Sofa生态: SofaBoot从入门到放弃
- 【第十二篇】Flowable事件-定时器事件
- web服务器角色源文件,IIS 7.5中提供的Web服务器(IIS)角色服务详请
- 数据分析 NO.16 摩拜单车数据分析项目