javascript检测对象中是否存在某个属性判断方法小结


Posted in Javascript onMay 19, 2013

检测对象中属性的存在与否可以通过几种方法来判断。
1.使用in关键字
该方法可以判断对象的自有属性和继承来的属性是否存在。

var o={x:1}; 
"x" in o; //true,自有属性存在 
"y" in o; //false 
"toString" in o; //true,是一个继承属性

2.使用对象的hasOwnProperty()方法
该方法只能判断自有属性是否存在,对于继承属性会返回false。
var o={x:1}; 
o.hasOwnProperty("x");  //true,自有属性中有x 
o.hasOwnProperty("y"); 
 //false,自有属性中不存在y 
o.hasOwnProperty("toString"); //false,这是一个继承属性,但不是自有属性

3.用undefined判断
自有属性和继承属性均可判断。
var o={x:1}; 
o.x!==undefined; //true 
o.y!==undefined; //false 
o.toString!==undefined //true

该方法存在一个问题,如果属性的值就是undefined的话,该方法不能返回想要的结果,如下。
var o={x:undefined}; 
o.x!==undefined; //false,属性存在,但值是undefined 
o.y!==undefined; //false 
o.toString!==undefined //true

4.在条件语句中直接判断
var o={}; 
if(o.x) o.x+=1; //如果x是undefine,null,false," ",0或NaN,它将保持不变
Javascript 相关文章推荐
可实现多表单提交的javascript函数
Aug 01 Javascript
ExtJs扩展之GroupPropertyGrid代码
Mar 05 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
JavaScript Function函数类型介绍
Apr 08 Javascript
使用CamanJS在Web页面上处理图像的技巧
Aug 18 Javascript
详解JavaScript对象和数组
Dec 03 Javascript
AngularJS ng-mousedown 指令
Aug 02 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
Dec 19 Javascript
Bootstrap Search Suggest使用例子
Dec 21 Javascript
微信小程序 支付功能开发错误总结
Feb 21 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
Jun 28 Javascript
javascript之typeof、instanceof操作符使用探讨
May 19 #Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
May 19 #Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
May 19 #Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
May 19 #Javascript
js函数中onmousedown和onclick的区别和联系探讨
May 19 #Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 #Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
May 19 #Javascript
You might like
PHP session有效期问题
2009/04/26 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
用jscript实现列出安装的软件列表
2007/06/18 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
javascript中this关键字详解
2016/12/12 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
linux下python抓屏实现方法
2015/05/22 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
Python实现的文本对比报告生成工具示例
2018/05/22 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
领导的自我鉴定
2013/12/28 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
校园绿化美化方案
2014/06/08 职场文书
就业协议书样本
2014/08/20 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers