JavaScript对象——检测属性是否存在

检测对象

一、检测对象的属性、方法是否存在

打印obj对象:
在这里插入图片描述
结果如下:
在这里插入图片描述
在这里插入图片描述
这些属性其实就是系统自带的:
在这里插入图片描述
因此对象的属性和方法分为两类。

二、分类:

第一类:对象本身的属性
在这里插入图片描述

第二类:对象原型身上的属性/方法
在这里插入图片描述
三、检测方式(3种):

方式一:in

            语法: 属性 in 对象
            返回: 布尔值

#对象身上的
在这里插入图片描述
是否有对象,那么返回结果是布尔值(true or false)

这里有name对象,因此返回true
在这里插入图片描述

#对象没有的,返回false
在这里插入图片描述
在这里插入图片描述
#对象原型身上的属性:
在这里插入图片描述
在这里插入图片描述

方式二:hasOwnProperty

            语法: 对象.hasOwnProperty(属性名称)
            返回: 布尔值

#检测对象自身的属性:
在这里插入图片描述在这里插入图片描述
#name123对象本来是没有的,肯定是false
在这里插入图片描述在这里插入图片描述
#toString属于对象原型,而这个方法解释是检测对象自身的,因此也是false。
在这里插入图片描述在这里插入图片描述
方式三:propertyIsEnumerable(和方式二类似)

            语法: 对象. propertyIsEnumerable (属性名称)
            返回: 布尔值
在这里插入图片描述在这里插入图片描述
#hasOwnProperty和propertyIsEnumerable区别:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
打印都可以弹出name、age,因此这叫可枚举(即name和age可以遍历出来)。

#让obj这个对象的name属性不可枚举
在这里插入图片描述
在这里插入图片描述
这时候只能打印出age属性,name属性就不可枚举了,但是这个属性还在。
#在不可枚举之后,如果再去打印以下两种情况,那么结果就不同了:

在这里插入图片描述
在这里插入图片描述
小结:
        hasOwnProperty 不可枚举 也返回true
        propertyIsEnumerable 不可枚举 返回false

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值