js判断一个对象是否为空对象(终极)

news/2024/7/10 23:52:43 标签: javascript, es6

终极:

function checkNullObj(obj) {
  return Object.keys(obj).length === 0 && Object.getOwnPropertySymbols(obj).length === 0;
}
javascript">var obj = {};
var a = Symbol("a");
var b = Symbol.for("b");

obj[a] = "localSymbol";
obj[b] = "globalSymbol";

console.log(Object.keys(obj).length)//0
console.log(Object.getOwnPropertyNames(obj))// [] 本身不包含对象的 Symbol 属性,只包含字符串属性

console.log(Object.getOwnPropertySymbols(obj))         // [Symbol(a), Symbol(b)]
console.log(Object.getOwnPropertySymbols(obj).length); // 2
console.log(Object.getOwnPropertySymbols(obj)[0])      // Symbol(a)


http://www.niftyadmin.cn/n/1649787.html

相关文章

习题练习题-第二题

同一对象被多个变量引用 任务描述 :编写一个多个变量引用同一个实例对象的小程序 练习目标 1.掌握如何创建类的对象; 2.掌握如何使用两个或者多个变量引用同一个实例对象。 需求分析 在程序中,一个对象可能在多处使用,这样就可能需要有多个变…

HTML5上传图片预览功能

HTML5上传图片预览功能 HTML代码如下: <!-- date: 2018-04-27 14:41:35 author: 王召波 descride: HTML5上传图片预览功能 --> <!DOCTYPE html> <html><head><meta charset"utf-8"><title>HTML5上传图片预览功能</title>…

vue+element-ui实现一键切换皮肤

element-ui可以自己定义主题并下载&#xff0c;选择好自己想要的主题&#xff0c;下载到本地。我下载了一套暗黑模式&#xff0c;一套默认的用来白天黑夜模式切换。 文件目录如下&#xff1a; 在项目的index.html文件中&#xff1a; <link rel"stylesheet" id&qu…

linux的zip命令详解

zip 命令用来压缩文件 参数&#xff1a; -A&#xff1a;调整可执行的自动解压缩文件&#xff1b; -b<工作目录>&#xff1a;指定暂时存放文件的目录&#xff1b; -c&#xff1a;替每个被压缩的文件加上注释&#xff1b; -d&#xff1a;从压缩文件内删除指定的文件&#x…

习题练习题-第三题

类的封装 任务描述&#xff1a;编写一个学生类&#xff0c;并根据要求对学生类进行封装 练习目标 1.了解为什么要对类进行封装; 2. 掌握如何实现类的封装; 需求分析 对类进行封装&#xff0c;防止外界对类中的成员变量随意访问。 为了掌握类的封装&#xff0c;本练习将使用priv…

习题练习题-第四题

构造方法及其重载 任务描述 &#xff1a;编写一个类&#xff0c;对类的构造方法进行定义和重载。 练习目标 1.掌握有参构造方法的定义方式&#xff1b; 2.掌握如何在类中定义重载的构造方法&#xff1b; 需求分析 如果希望在创建对象的时候直接为其属性赋值&#xff0c;可以定义…

二值信号量和互斥锁到底有什么区别?

在说明之前我先抛出结论&#xff1a;互斥锁和二值信号量在使用上非常相似&#xff0c;但是互斥锁解决了优先级翻转的问题 假定我们现在有三个任务&#xff0c;task1&#xff0c;task2&#xff0c;task3&#xff0c;任务优先级task1最高&#xff0c;然后依次降低。我们知道在系统…

Linux下安装jdk8步骤

作为Java开发人员&#xff0c;在Linux下安装一些开发工具是必备技能&#xff0c;本文以安装jdk为例&#xff0c;详细记录了每一步的操作命令&#xff0c;以供参考。 查看安装jdk版本信息; rpm -qa | grep java显示如下信息&#xff1a; java-1.4.2-gcj-compat-1.4.2.0-40jpp.…