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

如果我们要检测对象是否拥有某一属性,可以用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素材库

    PPT 商务报告:如何建立专属PPT素材库 为什么建立素材库? 省事:直接套用 应对紧急环境:无网络情况下,无法搜索 提升设计思路:帮助提升思路 通用型素材库 企业型素材库 模板 灵感网站 使用场景 ...

  2. Spring Cloud整体架构解析

    Spring Cloud整体架构 Spring Cloud的中文名我们就暂且称呼它为"春云"吧,听上去是多么朴实无华的名字,不过呢一般名字起的低调的都是厉害角色,我们就看看Spri ...

  3. 从数据链路到神秘的MAC地址和ARP协议

    引言 链路是指从一个结点到相邻结点的一段物理线路.数据链路是在链路的基础上增加了一些必要的硬件和软件.这些硬件包括网络适配器,而软件则包括协议的实现.在网络中,主机.路由器等设备都必须实现数据链路层. ...

  4. 【JAVA基础】数值处理

    #BigDecimal处理 ##保留两位小数 https://www.cnblogs.com/jpfss/p/8072379.html /** * 保留两位小数 */ @org.junit.Test ...

  5. AtCoder Beginner Contest 180 个人题解(快乐DP场)

    补题链接:Here A - box 输出 \(N - A + B\) B - Various distances 按题意输出 3 种距离即可 #include <bits/stdc++.h> ...

  6. 红黑树是什么?红黑树 与 B+树区别和应用场景?

    红黑树是什么?怎么实现?应用场景? 红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉树. 意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小 ...

  7. 聊聊与前端工程师天然互补的 Serverless

    作者:灵轮_(阿里云前端技术专家)_ 作为前端工程师,我们的使命是为用户提供良好的前端用户体验.随着云原生时代的到来,显而易见的,我们能做的更多了.Serverless 产品的特点是免运维.按量付费和 ...

  8. 使用Docker部署java项目时遇到的几个错误

    0.简介 本文主要是在学习黑马程序员Docker快速入门到项目部署过程中, 对遇到的问题进行了相关的总结梳理 1.本地已存在mysql服务占用3306端口 问题 当我使用docker run -d - ...

  9. MyBatis06——动态SQL

    动态SQL if choose (when, otherwise) trim (where, set) foreach 搭建环境 1.搭建数据库 CREATE TABLE `blog` ( `id` ...

  10. Kubernerts - 概览

    1. Kubernerts K8s,是用于自动部署.扩容和管理容器化应用程序的开源系统 1.1 特性 自动化上线与回滚 分步骤针对应用或者配置更改上线,监控应用的运行状态同时不会终止所有实例,若出现问 ...