简单方法判断JavaScript对象为null或者属性为空
首先说下null与undefined区别:
对已声明但未初始化的和未声明的变量执行typeof,都返回"undefined"。
null表示一个空对象指针,typeof操作会返回"object"。
一般不显式的把变量的值设置为undefined,但null相反,对于将要保存对象的变量,应明确的让该变量保存null值。
|
1
2
3
4
5
6
7
|
var bj;alert(bj); //"undefined"bj = null;alert(typeof bj); //"object"alert(bj == null); //truebj = {};alert(bj == null); //false |
|
1
2
3
4
5
6
7
8
9
10
11
12
|
/** 检测对象是否是空对象(不包含任何可读属性)。* 方法既检测对象本身的属性,也检测从原型继承的属性(因此没有使hasOwnProperty)。*/function isEmpty(obj){for (var name in obj){return false;}return true;}; |
这里所说的空对象,到底是 {} 还是 null . 我写了一个测试用例。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
var a = {};a.name = 'realwall';console.log(isEmpty(a)); //falseconsole.log(isEmpty({})); //trueconsole.log(isEmpty(null)); //true//注意参数为null时无语法错误哦,即虽然不能对null空指针对象添加属性,但可以使用for in 语句 ?/** 检测对象是否是空对象(不包含任何可读属性)。* 方法只既检测对象本身的属性,不检测从原型继承的属性。*/function isOwnEmpty(obj){for(var name in obj){if(obj.hasOwnProperty(name)){return false;}}return true;}; |
{}与null的区别:
这个东西很重要。
|
1
2
3
4
5
6
7
|
var a = {};var b = null;a.name = 'realwall';b.name = 'jim'; //这里会报错,b为空指针对象,不能像普通对象一样直接添加属性。b = a;b.name = 'jim'; //此时 a 和 b 指向同一个对象。a.name, b.name 均为'jam' |
简单方法判断JavaScript对象为null或者属性为空的更多相关文章
- 判断JavaScript对象为null或者属性为空
http://blog.csdn.net/yiluoak_47/article/details/7766760 首先说下null与undefined区别: 对已声明但未初始化的和未声明的变量执行typ ...
- 如何判断Javascript对象是否存在
Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言描述的算法如下: ...
- 【转】如何判断Javascript对象是否存在
Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言描述的算法如下: ...
- 转载 -- 如何判断Javascript对象是否存在
http://www.ruanyifeng.com/blog/2011/05/how_to_judge_the_existence_of_a_global_object_in_javascript.h ...
- 前端读者 | 如何判断Javascript对象是否存在
本文来自@阮一峰 Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言 ...
- 判断JS对象是否拥有某属性的方法举例
判断JS对象是否拥有某属性 JS是否拥有某属性的判断方法,这里提供两种方式,供大家参考. 1.in 运算符 var obj = {name:'jack'}; alert('name' in obj); ...
- python练习题-简单方法判断三个数能否组成三角形
python简单方法判断三个数能否组成三角形 #encoding=utf-8 import math while True: str=raw_input("please input thre ...
- 判断Javascript对象是否为空
判断普通javascript对象是否为空(含有可枚举的属性,自有的.继承的都可以),可使用jQuery 3.2.1版的isEmptyObject()方法: isEmptyObject: functio ...
- 用最简单的例子理解对象为Null模式(Null Object Pattern)
所谓的"对象为Null模式",就是要求开发者考虑对象为Null的情况,并设计出在这种情况下的应对方法. 拿"用最简单的例子理解策略模式(Strategy Pattern) ...
随机推荐
- 括号配对nyoj2(疑问)
描述现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长 ...
- original.txt和提交的页面输出的文字的混合文件
如果从准确的角度来说,那PHP文档是最准确的,因为它很简练的列出了实现文本类文件触发下载所需要的三条语句,以PDF为例就是: 代码如下:// We'll be outputting a PDF hea ...
- Bootstrap carousel轮转图的使用
来自:慕课网http://www.imooc.com/code/5395 图片轮播效果在Web中常常能看到,很多人也称之为幻灯片.其主要显示的效果就是多幅图片轮回播放, 从右向左播放,鼠标悬停在图片时 ...
- GROUP BY 與 Null 值
若群組資料行包含了 Null 值,該資料列將變成結果中的一個群組.若群組資料行內包含了多個 Null 值,Null 值將放入單一群組內.此行為定義於 SQL-2003 標準之中. Product 資料 ...
- 【iCore3 双核心板】例程九:ADC实验——电源监控
实验指导书及代码包下载: http://pan.baidu.com/s/1o7wSEO6 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- python 正则使用笔记
python正则使用笔记 def remove_br(content): """去除两边换行符""" content = content.r ...
- Android Studio编译运行project报错:····· finished with non-zero exit value 1
错误代码: Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.ide.c ...
- DHCP Set Hostname
参考: FreeBSD DHCP Set Hostname ( Empty Hostname After Reboot ) -- http://www.cyberciti.biz/faq/freebs ...
- Selenium脚本编写环境的搭建/XPath
编写环境主要分为三个部分: JUnit : java单元测试框架: Firebug: firefox 附加组件,Firebug是firefox下的一个扩展,能够调试所有网站语言,如Html,Css等, ...
- 透过proxy进行docker pull(Centos6.8)
由于必须通过proxy代理上网. 使用docker pull时一直出现如下错误: [root@centoo65 ~]# sudo HTTP_PROXY=http://186.100.4.107:808 ...