简单方法判断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中关于indexOf的使用方法与问题小结
Aug 05 Javascript
javascript 控制input只允许输入的各种指定内容
Jun 19 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
Aug 11 Javascript
js中toString()和String()区别详解
Mar 23 Javascript
Ionic + Angular.js实现图片轮播的方法示例
May 21 Javascript
JS原生轮播图的简单实现(推荐)
Jul 22 Javascript
微信小程序 按钮滑动的实现方法
Sep 27 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 jQuery
js设置随机切换背景图片的简单实例
Nov 12 Javascript
jQuery实现表单动态加减、ajax表单提交功能
Jun 08 jQuery
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
Aug 22 Javascript
vue2中引用及使用 better-scroll的方法详解
Nov 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输入数据统一类实例
2015/02/23 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
Python基础语法(Python基础知识点)
2016/02/28 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
入党积极分子思想汇报范文
2014/01/05 职场文书
党委班子剖析材料
2014/08/21 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
Python中使用subprocess库创建附加进程
2021/05/11 Python
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python