简单方法判断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代码
Apr 22 Javascript
javascript Window及document对象详细整理
Jan 12 Javascript
jQuery EasyUI提交表单验证
Jul 19 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
Aug 08 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
Dec 07 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
Dec 30 Javascript
小程序如何构建骨架屏
May 29 Javascript
使用Vue生成动态表单
Nov 26 Javascript
Vue+Vuex实现自动登录的知识点详解
Mar 04 Javascript
JavaScript实现移动端拖动元素
Nov 24 Javascript
用几道面试题来看JavaScript执行机制
Apr 30 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实时显示输出
2008/10/02 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
js实现继承的5种方式
2015/12/01 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
python学生管理系统的实现
2020/04/05 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
Footshop法国:购买运动鞋
2020/01/19 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
服装创业计划书范文
2014/02/05 职场文书
银行委托书范本
2014/04/04 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
学前班学生评语
2014/12/29 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
经典爱情感言
2015/08/03 职场文书