如何看某个对象中没有某一个属性

如果我们要检测对象是否拥有某一属性,可以用in操作符

var obj= {
name: '类老师',
age: 18,
school: '家具'
};
console.log('age' in obj); // true
console.log('grade' in obj); // false
在vue中的实际应用,通过判断是否有某一个属性,是否展示出这个标签。
<h2 class="tab-meassage-timeweek" v-if=" 'weekunkown' in item==true? true : false ">{{item.weekunkown}}</h2>
疑惑的地方
let xiaoming={};
console.log('Function' in xiaoming);//为false
console.log('toString' in xiaoming);//为什这里是true了 不是也应该是false吗
看了下面这张图,你就知道了,因为继承啊
因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以obj也拥有toString属性。
或者说
in 如果指定的属性位于对象或其原型链中,“in”运算符将返回true(原型链上的属性会读取)

2. hasOwnProperty
hasOwnProperty 方法会返回一个布尔值。
表示对象自身属性中是否具有对应的值(原型链上的属性不会读取)。 var obj= {
name: '陈三',
age: 18,
school: '宇宙银河系'
};
obj.hasOwnProperty('name'); // true
obj.hasOwnProperty('toString'); // false
// 创建空对象会报错。 空对象是会报错的哈~
let emptyObj = Object.create(null) // 在现实中很少这样使用
console.log(emptyObj.hasOwnProperty('name')) // 报错 // 不会报错
let emptyObj = {}
console.log(emptyObj.hasOwnProperty('name')) // 输出false
3. 使用 Object.hasOwn
Object.hasOwn  可以避免 in 的继承。
也可以避免创建空对象报错的问题。 // 避免继承
let xiaoming = {};
let flag1 = Object.hasOwn(xiaoming, 'toString')
console.log(flag1) //false //避免空对象报错
let emptyObj = Object.create(null) // 在现实中很少这样使用
let flag2 = Object.hasOwn(emptyObj, 'name')
console.log(flag2) //false
```

对象中是否有某一个属性是否存在有三种方法 in hasOwnProperty Object.hasOwn的更多相关文章

  1. Java初学者作业——完成对已定义类(Admin)的对象的创建。并完成属性的赋值和方法的调用。

    返回本章节 返回作业目录 需求说明: 完成对已定义类(Admin)的对象的创建.并完成属性的赋值和方法的调用. 实现思路: 创建 MyTest 类,并添加 main函数. 在 main函数中完成对 A ...

  2. Document对象中的一些重要的属性和方法(笔记)

    Document对象:每一个web浏览器窗口.标签页和框架由一个window对象所表示.每个window对象都有一个document属性引用的是Document对象,它是一个巨大的API中的核心对象, ...

  3. 在vuejs 中使用axios不能获取属性data的解决方法

    Laravel5.4 vuejs和axios使用钩子mounted不能获取属性data的解决方法 //出错问题:在then 这个里边的赋值方法this.followed = response.data ...

  4. window对象中的一些重要的属性和方法(笔记)

    setTimeout()方法用来实现一个函数在指定的毫秒数之后运行:setTimeout()返回一个值,这个值可以传递给clearTimeout()用于取消这个函数的执行.由于历史原因,setTime ...

  5. Element-ui 更新tableData 中 row的某一个属性时,没有更新视图的问题

    在一个报警音管理的页面中,每次点击试听的时候,需要把‘试听’ 更新为 ‘停止’, 起初我们给row.play=0时,显示为 试听,row.play=1时显示为停止, 但是在代码中每次为row.play ...

  6. 判断对象当中有没有某一个属性(AS,JS,Java语言比较)

    1.AS 首先说说AS里面如何判断,AS现在很少用这个语言了,当时我们公司的项目当中还有,所以就拿出来一块比较一下,代码如下: //利用Object属性判断 if("name" i ...

  7. 无法打开工作组信息文件中的表 'MSysAccounts',一个十分搞笑的解决方法

    问题提出:从access97导出一个mdb到access2000 为了程序使用命名为system.mdb,后改名为system.dat 在c#中打开,出现 无法打开工作组信息文件中的表 'MSysAc ...

  8. PHP程序中删除字符串最后一个字符的三种方法

    常见的语法格式: foreach ($arr as $key => $value) {$arr_str = $arr['x_id'] . ',' . $arr_str;} 假设字符数组 $arr ...

  9. C#中删除字符串最后一个字符的几种方法

    转载地址 偶然看到的,记录一下,以免忘记 字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法:    1.用的最多的是Su ...

  10. Math对象中比较常用的计算数学相关的三个方法

    Math类中提供了三个与取整有关的方法:ceil.floor.round,这些方法的作用与它们的英文名称的含义相对应,例如: ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil ...

随机推荐

  1. PPT 用图片轻松做出高大上的精修

    PPT 用图片轻松做出高大上的精修 图片留白充分 图片很花 文字和图片中间,插入一个透明背景 单图片型 放大+色块 左右分割 上下分割 用一个容器 图形结合 多图型 图片并列

  2. PPT 编辑顶点

    编辑顶点的N种玩法 针对特定的形状进行编辑 选中形状 -> 右键 -> 编辑顶点 如果[编辑顶点]是灰色的,需要上网下一个 office clean touris,清理一下 合并形状:多个 ...

  3. python sorted排序小结

    转载至: https://blog.csdn.net/ray_up/article/details/42084863 在python中排序有两个专用函数,一个是sort,另一个sorted.其中sor ...

  4. 用Python自动清理系统垃圾,再也不用360安全卫士了

    用Python自动清理系统垃圾,再也不用360安全卫士了 在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:.tmp.._mp)日志文件(.log).临时帮助文件(.gid ...

  5. JSP | JavaBean 的基本使用方法与 IDEA 配置

    上一篇重新编写了 IDEA 2021.2 新建JavaWeb项目及Tomcat部署, 接下来的本篇文章才是核心,JavaBean的基本使用方法与 IDEA 配置 JavaBean概述 JavaBean ...

  6. L2-020 功夫传人 (25分)

    分析: ⽤⼆维数 组v存储师⻔谱系关系,v[i]表示编号为i的师傅所拥有的徒弟,如果徒弟个数等于0, 也就是说这是个得道者,那么v[i][0]保存放⼤的倍数,⽽且⽤visit[i] = true标记当 ...

  7. P2058

    这道不难的题引发了我不少思考 我第一个版本是用vector嵌套vector写成的,后来发现没必要还存储那些已经超过24h的船,完全可以删除前面的船,因此把外层vector换成了deque. 即用deq ...

  8. SNMP 使用总结

    转载请注明出处: 1.SNMP简介 SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于网络设备和系统的管理协议.它允许网络管理员监控和管理网络 ...

  9. Angular系列教程之生命周期钩子

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  10. 基于AHB_BUS的eFlash控制器设计-01

    基于AHB-BUS的eflash控制器设计 SRAMC是单周期的读写,控制比较简单,没有状态机也没有软硬件的协同 eflash是非易失性的存储器,可以进行读写擦除,它也是一个基于AHB_slave的模 ...