博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断JavaScript对象为null或者属性为空
阅读量:7076 次
发布时间:2019-06-28

本文共 1387 字,大约阅读时间需要 4 分钟。

 

http://blog.csdn.net/yiluoak_47/article/details/7766760

 

首先说下null与undefined区别:

对已声明但未初始化的和未声明的变量执行typeof,都返回"undefined"。

null表示一个空对象指针,typeof操作会返回"object"。

一般不显式的把变量的值设置为undefined,但null相反,对于将要保存对象的变量,应明确的让该变量保存null值。

1 var bj; 2 alert(bj);  3 //"undefined" 4 bj = null; 6 alert(typeof bj); //"object" 8 alert(bj == null);  //true11 bj = {};13 alert(bj == null);  //false

 

 

 下面两个函数是邓师兄给我的,感谢啊。

1 /* 2  * 3  检测对象是否是空对象(不包含任何可读属性)。 4  * 5  方法既检测对象本身的属性,也检测从原型继承的属性(因此没有使hasOwnProperty)。 6  */ 7 function isEmpty(obj) 8 { 9     for (var name in obj)11     {12         return false;13     }14     return true;15 };

 

 这里所说的空对象,到底是 {} 还是 null . 我写了一个测试用例。

1 var a = {}; 3 a.name = 'realwall'; 5 console.log(isEmpty(a)); //false 7 console.log(isEmpty({})); //true 9 console.log(isEmpty(null)); //true //注意参数为null时无语法错误哦,即虽然不能对null空指针对象添加属性,但可以使用forin 语句。14   15 ?16 /*17  *18  检测对象是否是空对象(不包含任何可读属性)。19  *20  方法只既检测对象本身的属性,不检测从原型继承的属性。21  */22 function isOwnEmpty(obj)23 {24     for(var name25 in obj)26     {27         if(obj.hasOwnProperty(name))28         {29             return false;30         }31     }32     return true;33 };34  35 {}与null的区别:36 这个东西很重要。37 ?38 var a = {};40 var b = null;42  43 a.name = 'realwall';45 b.name = 'jim';47 //这里会报错,b为空指针对象,不能像普通对象一样直接添加属性。48 b = a;50 b.nameB= 'jim';52 //此时 a 和 b 指向同一个对象。a.name, b.name 均为'jam'

 

 

转载于:https://www.cnblogs.com/chenchenluo/p/4345696.html

你可能感兴趣的文章
Django 配置文件 settings.py
查看>>
php生成随机密码的几种方法
查看>>
Fouandation(NSString ,NSArray,NSDictionary,NSSet) 中常见的理解错误区
查看>>
新博客 Fighting
查看>>
python的单、双、多分支流程控制
查看>>
accept_mutex与性能的关系 (nginx)
查看>>
滚动条
查看>>
20. Valid Parentheses
查看>>
cssReset - css初始化
查看>>
mybatis generator Date类型时间丢失
查看>>
python 基础 4.5 用函数实现九九乘法表
查看>>
python 基础 9.2 mysql 事务
查看>>
利用表格分页显示数据的js组件datatable的使用
查看>>
shell编程系列13--文本处理三剑客之sed利用sed追加文件内容
查看>>
js操作大全(转)
查看>>
springmvc项目提交post表单参数乱码解决办法
查看>>
flask 第七章 简陋版智能玩具 +MongoDB初识和基本操作
查看>>
Maven之setting.xml 配置详解
查看>>
linux中运行.sql文件
查看>>
ftl 列表弄成js数组
查看>>