简单方法判断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图片自动切换效果处理代码
May 07 Javascript
jquery中对于批量deferred的处理方法
Jan 22 Javascript
js实现文章文字大小字号功能完整实例
Nov 01 Javascript
AspNet中使用JQuery boxy插件的确认框
May 20 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
Aug 25 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 Javascript
webpack中引用jquery的简单实现
Jun 08 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
vue生命周期和react生命周期对比【推荐】
Sep 19 Javascript
vue-cli3 引入 font-awesome的操作
Aug 11 Javascript
如何利用JavaScript编写一个格斗小游戏
Jan 06 Javascript
Javascript中的解构赋值语法详解
Apr 02 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防注入漏洞过滤函数代码
2012/04/11 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
PHP中的表达式简述
2016/05/29 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python进行参数传递的方法
2020/05/12 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
优秀企业获奖感言
2014/02/01 职场文书
村庄绿化方案
2014/05/07 职场文书
商场营业员岗位职责
2015/04/14 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
python实现监听键盘
2021/04/26 Python
Redis实现一个账号只能登录一个设备
2022/04/19 Redis