js 判断是否为空对象、空数组
当需要判断参数是否为空时,总希望 js 能够提供原生的判断方法,可惜并没有,只能自己封装了。
function isEmpty(obj) {
// 检验 undefined 和 null
  if(!obj && obj !== 0 && obj !== '') {
          
	return true;
  }
  if(Array.prototype.isPrototypeOf(obj) && obj.length === 0) { 
    return true;
  } 
  if(Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0) { 
    return true;   
  }   
  return false; 
}
isPrototypeOf() 方法用于测试一个对象是否存在于另一个对象的原型链上。即判断 Object 是否存在于 obj 的原型链上。需要注意的是,js 中一切皆是对象,也就是说,Object 也存在于数组的原型链上,因此这里数组需要先于对象检验。
ps:
isPrototypeOf 和 instanceof operator 是不一样的。在表达式 object instanceof AFunction 中,检测的是 AFunction.prototype 是否在object 的原型链中,而不是检测 AFunction 自身。
该方法属于 ES3 标准,现代浏览器均支持,包括 IE。 <( ̄︶ ̄)>
Object.keys() 方法会返回一个由给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致、
该方法属于 ES5 标准,IE9 以上和其它现代浏览器均支持。如果你很不幸的需要兼容 IE9以下浏览器,那就用 for...in 代替吧。但是,for...in 会将对象原型链上的属性也枚举出来,因此还需要加个判断。
for(var key in obj) {
	if(obj.hasOwnProperty(key)) {
		return false;
	}
}
hasOwnProperty()属于 ES3 标准,现代浏览器均支持,包括 IE。可以放心使用啦。 <( ̄︶ ̄)> 还有一种很特别的检验空对象或空数组的方法,就是使用 JSON.stringify():
JSON.stringify(obj) === '{}';
JSON.stringify(obj) === '[]'
js 判断是否为空对象、空数组的更多相关文章
- js判断字符串是否全为空(使用trim函数/正则表达式)
		我们需要判断用户输入的是否全是空格,可以使用以下方法: 方法一: 使用trim() /* 使用String.trim()函数,来判断字符串是否全为空*/ function kongge1(test) ... 
- js 对象及空对象或数组及空数组的判断与比较
		工作中经常会使用到,这里记录一下 判断是不是对象: let obj = {}; Object.prototype.toString.call(obj) == "[object Object] ... 
- JS判断输入框值是否为空
		<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ... 
- PHP空对象 空数组
		PHP定义空对象:$obj = (object)null;或$obj = (object)array(); 定义空数组:$arr = array();或$arr = [];//自 5.4 起可以使用短 ... 
- js判断当前内容是否为空
		function isValue(o) { return (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoo ... 
- js 中 json.stringfy()将对象、数组转换成字符串
		json.stringfy()将对象.数组转换成字符串 var student = new Object(); student.name = "Lanny"; student.ag ... 
- js 判断表单是否为空和是否是有效数字
		判断是否为空和是否是有效数字 <s:form name='form' onsubmit="return myCheck()" method="post" ... 
- JS 判断某变量是否为某数组中的一个值 的几种方法
		1.正则表达式 js 中判断某个元素是否存在于某个 js 数组中,相当于 PHP 语言中的 in_array 函数. }; 用法如下: var arr=new Array([‘b’,2,‘a‘,4]) ... 
- JS判断某变量是否为某数组中的一个值的3种方法
		1.正则表达式 js 中判断某个元素是否存在于某个 js 数组中,相当于 PHP 语言中的 in_array 函数. 1 Array.prototype.in_array = function (e) ... 
- JS 判断一个字符串是否包含在一个数组中
		var arr = ["白色", "黑色", "红色", "粉色"]; var sel = "黑色" ... 
随机推荐
- 使用SpringMvc调用POI jar导出excel的源码
			@RequestMapping(value = "/result/export") public String export(ResultIn in,HttpServletRequ ... 
- 使用PHP的strstr()函数来统计一段字符串中元音字母的个数(区分大小写)
			<?php/**练习:统计一段字符串中所有元音字母的个数(区分大小写)*/$str='This is a test file.'; //原始字符串echo $str.'<br>'; ... 
- “-webkit-font-smoothing”
			CSS3里面加入了一个"-webkit-font-smoothing"属性. 这个属性可以使页面上的字体抗锯齿,使用后字体看起来会更清晰舒服. 加上之后就顿时感觉页面小清晰了. 淘 ... 
- 阿里云oss总是提示SignatureDoesNotMatch错误怎么办
			网上的所有阿里云oss(C#)的例子几乎试遍了,为什么还是提示SignatureDoesNotMatch错误?什么原因?怎么办?下载一个阿里云提供的windows客户端发现,依然提示签名错误. 开始怀 ... 
- TCP/IP 协议族的简介
			TCP/IP重要的特性就是分层.TCP/IP 按照层次分为四层:应用层.传输层.网络层.数据链路层.分层的好处就是当某些地方需要改变的时候,只需要将改变的层替换掉即可,而不用去把整体做替换.各层之间的 ... 
- asp.net core mvc权限控制:权限控制介绍
			在进行业务软件开发的时候,都会涉及到权限控制的问题,asp.net core mvc提供了相关特性. 在具体介绍使用方法前,我们需要先了解几个概念: 1,claim:英文翻译过来是声明的意思,一个cl ... 
- Git中.gitignore文件的使用
			在我们使用git的时候,有时候就不想传一些与代码无关的文件到远程仓库中,比如说编译后的文件,.gitignore就可以帮助我们处理这些文件. 生成.gitignore文件 在git bash中使用 ... 
- Android jni 编程4(对基本类型二维整型数组的操作)
			Android jni 编程 对于整型二维数组操作: 类型一:传入二维整型数组,返回一个整型值 类型二:传入二维整型数组,返回一个二维整型数组 声明方法: private native int Sum ... 
- VS error 全集(error C2664: 'CWnd::MessageBoxW' : cannot convert parameter 1 from 'char *' to 'LPCTSTR'的解决方法)
			我用的是VS2005,在编译MFC时遇到了如下错误: error C2664: 'CWnd::MessageBoxW' : cannot convert parameter 1 from 'char ... 
- 好用的JS压缩工具—JSCompress
			好用的JS压缩工具-JSCompress http://www.jscompress.cn/ 1.容量体积小 2.可视化.自动化 3.独立性 
