JavaScript 中判断 {}是空对象
Javascript 中判断空对象
简介:在 JavaScript 判断字符串是否是一个空字符串 可以 !"" 返回 true 来判断, 要是判断 {} 是否是空对象,也用 !{} 来判断的 得到的结果是 false, !{name: ''} 的返回结果也是 false。那么这肯定是无法判断了。那么在JavaScript 中与没有其他方法可以来判断呢?让我们看看下面的方法。
- 首先我们先定义两个对象,一个没有属性,一个存在属性
var obj = {}
var obj2 = {name: '123'}
方法一 JSON.stringify()
function isEmptyObject(obj) {
return JSON.stringify(obj) === '{}'
}
console.log(isEmptyObject(obj)) // true
console.log(isEmptyObject(obj2)) // false
方法二 Object.getOwnPropertyNames()
- getOwnPropertyNames() 方法会获取对象中的属性名,存到一个数组中返回。
- 我们可以通过判断数组长度是否为 0 来判断
function isEmptyObject(obj) {
return Object.getOwnPropertyNames(obj).length === 0
}
console.log(isEmptyObject(obj)) // true
console.log(isEmptyObject(obj2)) // false
方法三 Object.keys()
- keys() 方法是ES6 中新增方法,作用和 getOwnPropertyNames() 形同。也会返回一个存储属性名的一个数组
function isEmptyObject(obj) {
return Object.keys(obj).length === 0
}
console.log(isEmptyObject(obj)) // true
console.log(isEmptyObject(obj2)) // false
方法四 forin
- 通过forin 方法判断是否存在 属性,存在放回 false 不存在 返回true
function isEmptyObject(obj) {
for (var key in obj) {
return false;
}
return true;
}
console.log(isEmptyObject(obj)) // true
console.log(isEmptyObject(obj2)) // false
方法五 Reflect.ownKeys()
- Reflect.ownKeys() 也是返回一个数组,可以 解决 Symbol() 作为 key 时的尴尬
var symbal = Symbal();
var bb = {};
bb[symbal] = 'Symbal';
function isEmptyObject(obj) {
return Reflect.ownKeys(obj).lenght === 0;
}
console.log(isEmptyObject(obj)) // true
console.log(isEmptyObject(obj2)) // false
console.log(isEmptyObject(bb)) // false Reflect.ownKeys(bb) 返回 [Symbol()]
JavaScript 中判断 {}是空对象的更多相关文章
- Java中判断非空对象.
Java中经常会遇到判断非空的时候. 有的时候判断了非空但是还是报空指针,为什么.? 判断的时候一般都会判断两次.类似于: Org o = new Org(); if ( o.getId()!=nul ...
- JavaScript中判断对象是否属于Array类型的4种方法及其背后的原理与局限性
前言 毫无疑问,Array.isArray是现如今JavaScript中判断对象是否属于Array类型的首选,但是我认为了解本文其余的方法及其背后的原理与局限性也是很有必要的,因为在JavaScrip ...
- JavaScript中判断为整数的多种方式
之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer). JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的d ...
- JavaScript中判断变量类型最简洁的实现方法以及自动类型转换(#################################)
这篇文章主要介绍了JavaScript中判断整字类型最简洁的实现方法,本文给出多个判断整数的方法,最后总结出一个最短.最简洁的实现方法,需要的朋友可以参考下 我们知道JavaScript提供了type ...
- Javascript中判断数组的正确姿势
在 Javascript 中,如何判断一个变量是否是数组? 最好的方式是用 ES5 提供的 Array.isArray() 方法(毕竟原生的才是最屌的): var a = [0, 1, 2]; con ...
- javascript中的内置对象
2015.12.1 javascript中的内置对象 复习: 1.js中的内置函数 alert prompt write parseInt parseFloat eval isNaN document ...
- (转载)JavaScript中的Window窗口对象
(转载)http://www.ijavascript.cn/jiaocheng/javascript-window-65.html 例子: <html> <head> < ...
- Java与JavaScript中判断两字符串是否相等的区别
JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等 直接用==,这与C++里的String类一样.而Java里的等号 ...
- javascript中遇到的字符串对象处理
在javascript中对参数处理: 1 <script> 2 function getParam() 3 { 4 urlInfo=window.location.href; //获取当前 ...
- JavaScript中判断整字类型最简洁的实现方法
这篇文章主要介绍了JavaScript中判断整字类型最简洁的实现方法,本文给出多个判断整数的方法,最后总结出一个最短.最简洁的实现方法,需要的朋友可以参考下 我们知道JavaScript提供了type ...
随机推荐
- 阿里云CDN操控2.0版本正式发布
简介: 2021年8月,阿里云边缘云CDN完成过去3年来最大的一次版本升级. 2021年8月,阿里云边缘云CDN完成过去3年来最大的一次版本升级.本次升级根据上万企业客户的使用反馈和行业应用特征,从 ...
- [GPT] 对于一个复杂的html文档而言,如何用 js 批量替换页面上的某些文字从A替换为B,前提是不能去掉标签和已绑定的事件
原生:示例代码 function replaceTextInDocument(node) { if (node.nodeType === Node.TEXT_NODE) { node.textCo ...
- 国内常用源开发环境换源(flutter换源,python换源,Linux换源,npm换源)
国内开源镜像站点 大学 清华大学开源软件镜像站 (使用较多) 中国科学技术大学开源软件镜像 (使用较多) 浙江大学开源镜像站 (主要是各发行版Linux,pip等常用库) 哈尔滨工业大学开源镜像站 ( ...
- S3-FIFO
S3-FIFO 本文作为下一篇缓存文章的预备知识. 背景 基于LRU和FIFO的驱逐 FIFO和LRU都是经典的缓存驱逐算法,在过去几十年中也出现了很多追求更高效率的驱逐算法,如ARC, 2Q, LI ...
- 11.prometheus监控之黑盒(blackbox)监控
一.黑盒监控 "白盒监控"--需要把对应的Exporter程序安装到被监控的目标主机上,从而实现对主机各种资源及其状态的数据采集工作. 但是由于某些情况下操作技术或其他原因,不是所 ...
- Ingress-Controller高可用方案及多租户场景(21)
一.Ingress-controller高可用 Ingress Controller 是集群流量的接入层,对它做高可用非常重要,可以基于 keepalive 实现 nginx-ingress-cont ...
- Linux查看文件指定行数内容与查找文件内容
Linux查看文件指定行数内容 1.tail date.log 输出文件末尾的内容,默认10行 tail -20 date.log 输出最后20行的内容 tail -n -20 date.log 输出 ...
- google账户配置foxmail和使用foxmail
最近想把邮件分门别类,创建一些个人文件夹,更好的筛选邮件,可以尝试使用foxmail 1. 如果你有google账户,在配置foxmail之前需打开google账户的安全设置 https://myac ...
- python交教程4:文件操作
文件操作流程 人类操作一个word流程: 1.找到文件.双击打开 2. 读或修改 3. 保存&关闭 ⽤python操作⽂件也差不多: 只读模式 创建模式 追加模式 遍历文件 图片视频- ...
- Linux(四):Linux的打包和压缩详解
关于Linux的文件操作,这里汇总一下打包和压缩的一些命令,以及命令使用的详情. 打包(归档)和压缩 归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中.归档文件没有经过压缩, ...