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

 更新时间:2014年09月26日 17:15:29   投稿:whsnow  
对已声明但未初始化的和未声明的变量执行typeof,都返回undefined,null表示一个空对象指针,typeof操作会返回object

首先说下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 this绑定与this指向问题的解析

    JavaScript this绑定与this指向问题的解析

    本文主要介绍了JavaScript this绑定与this指向问题的解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • js实现简单的验证码

    js实现简单的验证码

    这篇文章主要介绍了js实现简单验证码的方法,验证码主要是为了网站的安全性,防止恶意注册和登陆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 在html页面上拖放移动标签

    在html页面上拖放移动标签

    在html页面上拖放移动标签,需要的朋友可以参考下。
    2010-01-01
  • JavaScript插件化开发教程 (一)

    JavaScript插件化开发教程 (一)

    这篇文章主要介绍了JavaScript插件化开发教程,十分的详细,
    2015-01-01
  • 微信小程序实现手机振动效果

    微信小程序实现手机振动效果

    这篇文章主要介绍了微信小程序实现手机振动效果,手机振动应用场景以 wx.vibrateLong() 方法为例结合实例代码给大家详细讲解,需要的朋友可以参考下
    2023-07-07
  • js简单时间比较的方法

    js简单时间比较的方法

    这篇文章主要介绍了js简单时间比较的方法,通过2个自定义函数实现针对时间与日期的比较功能,涉及javascript日期及时间换算与比较操作相关技巧,需要的朋友可以参考下
    2016-08-08
  • js加减乘除精度丢失问题解决

    js加减乘除精度丢失问题解决

    计算机的二进制实现和位数限制有些数无法有限表示,就会产生精度丢失问题,本文主要介绍了js加减乘除精度丢失问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • html5+javascript制作简易画板附图

    html5+javascript制作简易画板附图

    这篇文章主要介绍了使用html5+javascript制作的简易画板,需要的朋友可以参考下
    2014-04-04
  • js获取时间精确到秒(年月日)

    js获取时间精确到秒(年月日)

    这篇文章主要为大家详细介绍了js获取时间精确到秒,实现获取当前年份、当前月份等操作,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • js如何准确获取当前页面url网址信息

    js如何准确获取当前页面url网址信息

    这篇文章主要为大家介绍了js准确获取当前页面url网址信息的多种方法,包括正则法、split拆分法等,需要的朋友可以参考下
    2016-04-04

最新评论