简单方法判断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 相关文章推荐
js Html结构转字符串形式显示代码
Nov 15 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
Nov 23 Javascript
RequireJS多页面应用实例分析
Jun 29 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
JS模拟超市简易收银台小程序代码解析
Aug 18 Javascript
Vue的土著指令和自定义指令实例详解
Feb 04 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
Apr 21 Javascript
详解javascript 正则表达式之分组与前瞻匹配
May 30 Javascript
JavaScript实现简单音乐播放器
Apr 17 Javascript
php结合js实现多条件组合查询
May 28 Javascript
react组件基本用法示例小结
Apr 27 Javascript
JS如何实现手机端输入验证码效果
May 13 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加密解密函数详解
2015/10/28 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
react 应用多入口配置及实践总结
2018/10/17 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
python中字符串前面加r的作用
2015/06/04 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
Spy++的使用方法及下载教程
2021/01/29 Python
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
三好学生自我鉴定
2013/12/17 职场文书
年会主持词结束语
2014/03/27 职场文书
五分钟演讲稿
2014/04/30 职场文书
应届大学生自荐书
2014/06/17 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
python批量创建变量并赋值操作
2021/06/03 Python
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
Java tomcat手动配置servlet详解
2021/11/27 Java/Android
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏
Python如何加载模型并查看网络
2022/07/15 Python