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下字符串连接的性能
Mar 05 Javascript
利用JS自动打开页面上链接的实现代码
Sep 25 Javascript
jQuery实现类似滑动门切换效果的层切换
Sep 23 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
Mar 03 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
Sep 14 Javascript
flag和jq on 的绑定多个对象和方法(必看)
Feb 27 Javascript
详解离线安装npm包的几种方法
Nov 25 Javascript
vue实现分页栏效果
Jun 28 Javascript
JavaScript实现五子棋游戏的方法详解
Jul 08 Javascript
详解Vue.js 响应接口
Jul 04 Javascript
JavaScript常用工具函数库汇总
Sep 17 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
PHP eval函数使用介绍
2013/12/08 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
TP3.2.3框架文件上传操作实例详解
2020/01/23 PHP
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
python字符类型的一些方法小结
2016/05/16 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
Django框架请求生命周期实现原理
2020/11/13 Python
python Xpath语法的使用
2020/11/26 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
临床医师专业个人自我评价
2014/01/08 职场文书
初婚未育证明
2014/01/15 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
委托书样本
2014/04/02 职场文书
教师节慰问信
2015/02/15 职场文书
党员自我评价范文2015
2015/03/03 职场文书
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android