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 相关文章推荐
关于js数组去重的问题小结
Jan 24 Javascript
jquery插件orbit.js实现图片折叠轮换特效
Apr 14 Javascript
Javascript编程中几种继承方式比较分析
Nov 28 Javascript
jQuery自动完成插件completer附源码下载
Jan 04 Javascript
基于Bootstrap实现图片轮播效果
May 22 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
Dec 25 Javascript
js 概率计算(简单版)
Sep 12 Javascript
webpack热模块替换(HMR)/热更新的方法
Apr 05 Javascript
vue中axios的二次封装实例讲解
Oct 14 Javascript
js实现select下拉框选择
Jan 11 Javascript
解决vue无法侦听数组及对象属性的变化问题
Jul 17 Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 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 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
PHP设计模式之注册树模式分析
2018/01/26 PHP
菜单效果
2006/10/14 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
2013/08/01 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
javascript this详细介绍
2016/09/19 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
详解python发送各类邮件的主要方法
2016/12/22 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
Python递归函数特点及原理解析
2020/03/04 Python
Python之多进程与多线程的使用
2021/02/23 Python
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
医院门卫岗位职责
2013/12/30 职场文书
列车长先进事迹材料
2014/01/25 职场文书
《老山界》教学反思
2014/04/08 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL