如何证明空对象为空对象?


1.问题背景:

接手的项目出现的这样的写法
res === {} 来判断空对象,
当时会意了,但是越想越不对...


2.常见的 number、str、array、obj 以此用 == 和 ===

  1. number

      let c = 0;
      console.log(c == 0);//true
      console.log(c === 0);//true

  2. str

      let a = ' ';
      console.log(a == ' ');//true
      console.log(a === ' ');//true

  3. array

      let d = []
      console.log(d == [])//false
      console.log(d === [])//false

  4. obj

      let b = {} ;
      console.log(b == {});//false
      console.log(b === {});//false

  5. str与number

      let b = '0' ;
      console.log(b == 0);//true
      console.log(b === 0);//false

3. 证明 对象 为空对象的方法

  1 .将json对象转化为json字符串,再判断该字符串是否为"{}"

     let  data = {};
     console.log (JSON.stringify(data) == "{}");//true
     console.log (JSON.stringify(data) ==="{}");//true

  2.for in 循环判断 (return是在一个函数中起作用的)

        let obj = {};
        let i = function() {
            for(let key in obj) {
                  return false;
                 }
               return true;
             }
        console.log(i()) //true

  3.jquery的isEmptyObject方法
  //此方法是jquery将2方法(for in)进行封装,使用时需要依赖jquery

  4.Object.getOwnPropertyNames()方法,此方法不兼容ie8
   获取到对象中的属性名,存到一个数组中,通过数组的length来判断

        let data = {};
        let arr = Object.getOwnPropertyNames(data);
        console.log(arr.length == 0);//true

  5.使用es6的Object.keys()方法,与4方法类似

       const data = { name: "Lily", age: 30, tel: "132xxxxxxxx", address: { city : "beijing", district: "haidian", detail: "dddddddd"} };
       let arr = Object.keys(data);
       console.log(arr.length == 0);//true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,749评论 1 45
  • 方便起见不分parameter[形参,出现在函数定义中]和argument[实参,其值为传入函数的值],一律当作a...
    东月三二阅读 400评论 0 0
  • 1. javascript的typeof返回哪些数据类型. 答案:string,boolean,number,un...
    梦里梦不到的梦_b5c8阅读 707评论 0 0
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,341评论 0 3
  • client,page和screen的区别? clientX,clientY是触摸点相对于viewport视口x,...
    change_22fa阅读 1,724评论 1 1