简单方法判断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'

相关文章

  • JS中如何优雅的使用async await详解

    JS中如何优雅的使用async await详解

    async表示异步,而await可以看作async wait,个人对async与await的简单理解就是,我们可以用同步的方式去书写异步代码,这篇文章主要给大家介绍了关于JS中如何优雅的使用async await的相关资料,需要的朋友可以参考下
    2021-10-10
  • 使用typeof判断function是否存在于上下文

    使用typeof判断function是否存在于上下文

    这篇文章主要介绍了使用typeof判断function是否存在于上下文,在窗口加载时,使用typeof进行判断,需要的朋友可以参考下
    2014-08-08
  • js获得相对路径文件并上传到服务器的方法

    js获得相对路径文件并上传到服务器的方法

    由于浏览器的安全限制,Javascript无法直接获取用户上传文件的绝对路径。但是我们可以通过一些技巧来获取文件的相对路径,这篇文章主要给大家介绍了关于js获得相对路径文件并上传到服务器的相关资料,需要的朋友可以参考下
    2023-11-11
  • 微信小程序中如何计算距离某个节日还有多少天

    微信小程序中如何计算距离某个节日还有多少天

    这篇文章主要给大家介绍了关于微信小程序中如何计算距离某个节日还有多少天的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用微信小程序具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • javascript的alert box在java中如何显示多行

    javascript的alert box在java中如何显示多行

    这篇文章主要介绍了javascript的alert box在java中如何显示多行,需要的朋友可以参考下
    2014-05-05
  • JavaScript实现将Word文档解析成浏览器认识的HTML

    JavaScript实现将Word文档解析成浏览器认识的HTML

    这篇文章主要为大家详细介绍了如何使用JavaScript实现将Word文档解析成浏览器认识的HTML,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2024-02-02
  • JS实现的透明度渐变动画效果示例

    JS实现的透明度渐变动画效果示例

    这篇文章主要介绍了JS实现的透明度渐变动画效果,涉及javascript响应鼠标事件针对页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2018-04-04
  • JS中取二维数组中最大值的方法汇总

    JS中取二维数组中最大值的方法汇总

    本文通过三种解决方案给大家介绍js中取二维数组中最大值的方法。介绍的非常详细,具有参考价值
    2016-04-04
  • 微信小程序实战之顶部导航栏(选项卡)(1)

    微信小程序实战之顶部导航栏(选项卡)(1)

    这篇文章主要为大家详细介绍了微信小程序实战之顶部导航栏的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • JS实现轮播图案例

    JS实现轮播图案例

    这篇文章主要为大家详细介绍了JS实现轮播图案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论