简单方法判断JavaScript对象为null或者属性为空


Posted in Javascript onSeptember 26, 2014

首先说下null与undefined区别:

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

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

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

var bj;
alert(bj); //"undefined"
bj = null;
alert(typeof bj); //"object"
alert(bj == null); //true
bj = {};
alert(bj == null); //false

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

/*
* 检测对象是否是空对象(不包含任何可读属性)。
* 方法既检测对象本身的属性,也检测从原型继承的属性(因此没有使hasOwnProperty)。
*/
function isEmpty(obj)
{
for (var name in obj)
{
return false;
}
return true;
};

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

var a = {};
a.name = 'realwall';
console.log(isEmpty(a)); //false
console.log(isEmpty({})); //true
console.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的区别:

这个东西很重要。

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 相关文章推荐
Prototype使用指南之enumerable.js
Jan 10 Javascript
JavaScript Event学习第三章 早期的事件处理程序
Feb 07 Javascript
jquery form 加载数据示例
Apr 21 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
Sep 01 Javascript
在Html中使用Requirejs进行模块化开发实例详解
Apr 15 Javascript
javascript中的深复制详解及实例分析
Dec 29 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
基于JS对象创建常用方式及原理分析
Jun 28 Javascript
详解vue移动端日期选择组件
Feb 22 Javascript
Vue 中对图片地址进行拼接的方法
Sep 03 Javascript
AngularJs中$cookies简单用法分析
May 30 Javascript
javascript异常处理实现原理详解
Feb 17 Javascript
jquery uploadify 在FF下无效的解决办法
Sep 26 #Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 #Javascript
javascript 自定义回调函数示例代码
Sep 26 #Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 #Javascript
jQuery对val和atrr("value")赋值的区别介绍
Sep 26 #Javascript
jquery实现一个简单好用的弹出框
Sep 26 #Javascript
php,js,css字符串截取的办法集锦
Sep 26 #Javascript
You might like
Protoss建筑一览
2020/03/14 星际争霸
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
PHP正则的Unknown Modifier错误解决方法
2010/03/02 PHP
写出高质量的PHP程序
2012/02/04 PHP
php绘制一个矩形的方法
2015/01/24 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
python实现的简单文本类游戏实例
2015/04/28 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
10个Python小技巧你值得拥有
2018/09/29 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python脚本后台执行方式
2019/12/21 Python
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
如何用JQuery进行表单验证
2013/05/29 面试题
大学生自我评价怎样写好
2013/10/23 职场文书
门卫工作岗位职责
2013/12/17 职场文书
八一建军节活动方案
2014/02/10 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS