简单方法判断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 相关文章推荐
javascript RadioButtonList获取选中值
Apr 09 Javascript
jquery 防止表单重复提交代码
Jan 21 Javascript
把jquery 的dialog和ztree结合实现步骤
Aug 02 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
Jun 05 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
Dec 17 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
Jan 12 Javascript
JQuery的attr 与 val区别
Jun 12 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
May 17 Javascript
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 Javascript
js插件实现图片滑动验证码
Sep 29 Javascript
javascript实现的字符串转换成数组操作示例
Jun 13 Javascript
用 js 写一个 js 解释器过程详解
Aug 02 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
php封装的smarty类完整实例
2016/10/19 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
JavaScript实现消消乐的源代码
2021/01/12 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
python的pip有什么用
2020/06/17 Python
极简的HTML5模版
2015/07/09 HTML / CSS
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
体育教育专业自荐信范文
2013/12/20 职场文书
小学体育教学反思
2014/01/31 职场文书
个人投资计划书
2014/05/01 职场文书
个人授权委托书
2014/09/15 职场文书
毕业设计工作总结
2015/08/14 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS