JavaScript中的对象

JavaScript中的对象属于是引用类型的数据,是一种数据类型

对象:是一组属性和方法的集合

一部手机:属性有颜色、品牌、屏幕尺寸、内存大小、CPU,方法有播放视频、听音乐、办公、聊天...

一辆汽车:属性有颜色、空间大小、品牌、燃料类型,方法有代步、拉货...

万物皆对象

1.JS中的对象

自定义对象:用户创建的对象

内置(ES)对象:JS标准规范中提供的对象

宿主对象:运行在不同的环境下,根据运行环境划分

2.自定义对象

(1) 对象字面量
var phone = { 属性名1: 属性值1, '属性名2': 属性值2,... }

属性名的引号可以省略,如果含有特殊字符必须添加引号。

练习:创建一个员工对象,包含的属性有编号、姓名、性别、生日、所属部门编号

var emp = {eid: 1,ename: 'Yu',sex: '女',birthday: '1991年5月4日','dept-id': 30
}

练习:创建一个商品对象,包含的属性有编号、标题、封面图、价格、库存量

var product = {pid: 1,title: '戴尔DELL灵越游匣15PR',img: 'img/dell.jpg',price: 5999,stock: 800
}
(2)内置构造函数

通过new关键字调用的函数就是构造函数

var car = new Object()
// 需要单独添加属性
car.color = '黑色'

3.访问属性

对象.属性名

对象['属性名']

如果属性名不存在,获取的属性值为undefined

练习:创建一本图书对象,包含的属性有编号、书名、作者、价格;修改图书的价格,添加图书的出版社、出版日期,打印输出图书的作者。

var book = {id: 9787115335500,title: '深入浅出Node.js',author: '朴灵',price: 51.4
}
// 修改价格
book.price = 48.5
// 添加属性
book.publish = '人民邮电出版社'
book['ptime'] = '2013-12-1'
​
console.log(book.author)
console.log(book)

4.遍历(枚举)属性

采用循环的方式,依次访问对象中的每个属性

for(var k in 对象) {k   每次访问到的属性名对象[k]   属性名对应的属性值
}

练习:创建一个成绩对象,包含多门成绩,遍历属性访问到每个成绩,计算出总分和平均分。

var score = {chinese: 84,math: 92,english: 78,history: 90
}
// 遍历属性
// 声明变量,用于保存总分
var sum = 0
// 声明变量,用于保存数量
var count = 0
for(var k in score) {// score[k]  每一个分数// console.log(k, score[k])// 把每一个分数加到sumsum += score[k]// 数量加1count++
}
console.log(sum, count, sum/count)

5.检测属性是否存在

对象.属性名 === undefined  // true -> 不存在  false -> 存在
对象.hasOwnProperty('属性名')  // true -> 存在  false -> 不存在
'属性名' in 对象  // true -> 存在  false -> 不存在

练习:创建一个商品对象,包含的属性有编号、标题、价格,如果库存量不存在,添加库存量属性,设置属性值为100;如果价格属性存在的话,对价打8折;最后打印对象

var product = {pid: 2,title: '小米13',price: 4200
}
// 判断属性不存在
// product.stock === undefined
// !product.hasOwnProperty('stock')
if(!('stock' in product)) {product.stock = 100
}
// 判断属性存在
if(product.hasOwnProperty('price')) {// 打8折product.price *= 0.8
}
​
console.log(product)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/150936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据处理】Python:实现求条件分布函数 | 求平均值方差和协方差 | 求函数函数期望值的函数 | 概率论

猛戳订阅! 👉 《一起玩蛇》🐍 💭 写在前面:本章我们将通过 Python 手动实现条件分布函数的计算,实现求平均值,方差和协方差函数,实现求函数期望值的函数。部署的测试代码放到文后了,运行所需环境 python version >= 3.6,numpy >= 1.15,nltk >= 3.4,tqd…

Git 提交竟然还能这么用?

大家好,我是鱼皮。Git 是主流的代码版本控制系统,是团队协作开发中必不可少的工具。 之前已经给大家分享过 Git / GitHub 的学习指南,感兴趣的同学可以先看视频了解:https://www.bilibili.com/video/BV1KZ4y1e7cG。 这篇文章&am…

PHP 数据类型判断学习资料

PHP 数据类型判断 在 PHP 中,您可以使用一些内置函数来判断变量的数据类型。这些函数可以帮助您在程序中进行条件判断和类型转换。以下是一些常用的 PHP 数据类型判断函数: 1. is_string() is_string($variable) 函数用于检查变量是否为字符串类型。它…

BUG:编写springboot单元测试,自动注入实体类报空指针异常

原因:修饰测试方法的Test注解导入错误 造成错误的原因是 import org.junit.Test;正确的应该是 import org.junit.jupiter.api.Test前者是Junit4,后者是Junit5 junit4的使用似乎要在测试类除了添加SpringbootTest还要添加RunWith(SpringRunner.class) 同时要注意spring-boot-s…

12v转3.3v不发热的ldo 12转5V 不发热三端稳压IC

主营产品:锂电充电管理IC 双节锂电8.4V 单节锂电充电 镊镉电池充电 低功耗鼠标升压IC DC-DC稳压IC 车充IC 车充方案 车载LED照明驱动 恒流恒压车充IC 输出带线补车充IC 耐高压60V稳压IC锂电池供电充电管理IC 3.7V升5V大电流升压IC LED驱动IC 充电器升压IC 急充升压IC 电流稳压…

Nginx生产环境安装配置

不建议使用nginx-1.18.0.tar.gz,因为扫出很多漏洞 上传nginx-1.24.0.tar.gz [rootzonghe01 data]# ll -rw-r--r-- 1 root root 1112471 Oct 26 15:57 nginx-1.24.0.tar.gz [rootzonghe01 data]# pwd /data解押 [rootzonghe01 data]# tar -zxvf nginx-1.24.0.tar…

rk3588使用vscode远程debug 配置文件

进入调试口,需要本地和远程都装C/C estension 下面是在调mpi_enc_test的launch.json 文件自己make生成的 makefile 没改过 args项是输入参数,配置了相机输入,具体参数看他的demo说明, 记录一下,方便以后拷贝方便 {// …

【洛谷 P3853】[TJOI2007] 路标设置 题解(二分答案+递归)

[TJOI2007] 路标设置 题目背景 B 市和 T 市之间有一条长长的高速公路,这条公路的某些地方设有路标,但是大家都感觉路标设得太少了,相邻两个路标之间往往隔着相当长的一段距离。为了便于研究这个问题,我们把公路上相邻路标的最大…

【Seata源码学习 】篇三 seata客户端全局事务开启、提交与回滚

1.GlobalTransactionalInterceptor 对事务方法对增强 我们已经知道 GlobalTransactionScanner 会给bean的类或方法上面标注有GlobalTransactional 注解 和 GlobalLock的 添加一个 advisor (DefaultPointcutAdvisor ,advisor 绑定了PointCut 的 advise) 而此处的 …

工业基础类IFC—材质和纹理

在我们的 IFC技术交流群(788206534)里,经常会有人提问“如何学习 IFC文档或者其开发”的问题。对于这个问题,我一直没有机会做一个完整的回答,这次我认真回忆了自己关于IFC的学习经历,在此与大家分享。一是…

Wireshark 截取指定端口海量包分析

有个应用要分析一下协议,但是8939,8940传输一下子几个G的数据,但是要分析的端口8939实际上只有几个MB最多,如果用wireshark有界面的程序一截取就会卡死,于是使用命令行方式,截取指定端口的 tshark -i &quo…

Flume的安装部署及常见问题解决

1.安装地址 (1) Flume官网地址:http://flume.apache.org/ (2)文档查看地址:http://flume.apache.org/FlumeUserGuide.html (3)下载地址:http://archive.apache.org/dist…

系统及其存储相关

1.区分系统(软件)和固件 1.1概念辨别 系统(软件software): 角色: 系统是计算机中的核心软件,提供基本的管理、控制和资源分配功能。它通常包括操作系统,负责管理硬件资源、提供用户…

基于Qt QList和QMap容器类示例

## QList<T> QList<T>容器是一个数组列表,特点如下: 1.大多数情况下可以用QList。像prepend()、append()和insert()这种操作,通常QList比QVector快的多。这是因为QList是基于index标签存储它的元素项在内存中(虽然内存不连续,这点与STL的list 是一样的),比…

【机器学习基础】K-Means聚类算法

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;相对完整的机器学习基础教学&#xff01; ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战…

linux镜像的下载,系统下载(个人使用)

文章目录 一、系统之家二、国内镜像源三、Centos官网四、安装成功截图五、镜像类型的区别参考文档 一、系统之家 系统之家官网 二、国内镜像源 下载镜像地址&#xff1a; 1、官网地址&#xff1a;https://www.centos.org/ 2、阿里镜像站&#xff1a;https://mirrors.aliyu…

一文读懂:testcafe框架和页面元素交互

一、互动要求 使用 TestCafe 与元素进行交互操作&#xff0c;元素需满足以下条件&#xff1a;☟ 元素在 body 页面窗口或 iframe 窗口的元素内。如果某个元素在视口之外&#xff0c;则 TestCafe 通过滚动可以滚动到元素可见。 元素是可见的&#xff0c;具有以下属性&#…

uniapp、小程序canvas相关

1、圆形or圆形头像 //示例 const ctx uni.createCanvasContext(myCanvas); //canvas const round uni.upx2px(72) / 2; // 半径 const x uni.upx2px(92); //目标x轴位置 const y uni.upx2px(236); //目标y轴位置//if 图片是不是静态资源 async > const imgSrc https:/…

实力认证|易知微上榜中国信息通信研究院数字孪生城市产业图谱!

近期&#xff0c;中国通信院就数字孪生技术在城市层面的广泛应用&#xff0c;根据数字孪生产业框架&#xff0c;结合产业发展动态和企业综合实力评估&#xff0c;选取了核心产业、关联产业和辐射产业等各领域业务代表性较强的企业&#xff08;机构&#xff09;&#xff0c;形成…

Flink(六)【DataFrame 转换算子(下)】

前言 今天学习剩下的转换算子&#xff1a;分区、分流、合流。 每天出来自学是一件孤独又充实的事情&#xff0c;希望多年以后回望自己的大学生活&#xff0c;不会因为自己的懒惰与懈怠而悔恨。 回答之所以起到了作用&#xff0c;原因是他们自己很努力。 …