简单方法判断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变量作用域更轻松
Oct 25 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
在JavaScript中构建ArrayList示例代码
Sep 17 Javascript
简单实现jQuery多选框功能
Jan 09 Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 Javascript
Bootstrap3下拉菜单的实现
Feb 22 Javascript
JS实现json的序列化和反序列化功能示例
Jun 13 Javascript
VUE2.0中Jsonp的使用方法
May 22 Javascript
php中and 和 &&出坑指南
Jul 13 Javascript
JS实现字符串翻转的方法分析
Aug 31 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
Sep 18 Javascript
详解vue移动端项目代码拆分记录
Mar 15 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-Java-Bridge使用笔记
2014/09/22 PHP
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
javascript 闭包疑问
2010/12/30 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
javascript中Function类型详解
2015/04/28 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
python动态加载变量示例分享
2014/02/17 Python
Python的requests网络编程包使用教程
2016/07/11 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
python模块导入的细节详解
2018/12/10 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
使用Python三角函数公式计算三角形的夹角案例
2020/04/15 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
简约控的天堂:The Undone
2016/12/21 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
旅游管理专业生自荐信范文
2014/01/02 职场文书
学生出入校管理制度
2014/01/16 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
2014年公务员工作总结
2014/11/18 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
Python天气语音播报小助手
2021/09/25 Python
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript