简单方法判断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中取绝对值的2种方法
Jul 09 Javascript
在浏览器中打开或关闭JavaScript的方法
Jun 03 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
Nov 17 Javascript
JavaScript监听手机物理返回键的两种解决方法
Aug 14 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 jQuery
详解vue项目打包后通过百度的BAE发布到网上的流程
Mar 05 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
Vue3.0结合bootstrap创建多页面应用
May 28 Javascript
小程序实现上下移动切换位置
Sep 23 Javascript
vue实现计步器功能
Nov 01 Javascript
JS实现网页时钟特效
Mar 25 Javascript
vue中destroyed方法的使用说明
Jul 21 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生成静态html页面的方法(2种方法)
2015/09/14 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
Javascript - HTML的request类
2006/07/15 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Python实现在线音乐播放器
2017/03/03 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
Python新手学习标准库模块命名
2020/05/29 Python
python打包生成so文件的实现
2020/10/30 Python
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
一年级语文教学反思
2014/02/13 职场文书
拉歌口号大全
2014/06/13 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
本科应届生求职信
2014/08/05 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
python基础之while循环语句的使用
2021/04/20 Python