学习Javascript中的对象

1.什么是对象

对象(Object):Javascript里面的一种数据类型(引用类型),也是用于存储数据的。

好处:可以用来详细的描述某个事物,是用键值对形式存储语义更明了。

特点:对象数据是无序的,数组是有序的。

注意:声明对象要使用大括号{},大括号就是对象字面量。

2.对象组成

属性:事物的描述信息,比如身高,年龄等

方法:事物的行为性成为方法。跑步,唱歌等

let student1 = {sname:'张三',age:18,sex:'男',className:'软件工程'
}let student1 = {study: function(){console.log('正在学习~~~~');}
}

3.对象使用-属性

1.定义对象属性:属性都是成对出现的,包括属性名和属性值。

2.访问对象属性:访问对象属性可以得到里面的值。

let student1 = {sname: '张三',sage: 20,sgender: '男',sclass: '101',sgrade: 10}console.log(student1.sname); // 张三console.log(student1.sage); // 20console.log(student1.sgender); // 男console.log(student1.sclass); // 101console.log(student1.sgrade); // 10// 给对象添加属性student1.saddress = '北京市海淀区';console.log(student1.saddress); // 北京市海淀区// 修改对象属性student1.sage = 21;console.log(student1.sage); // 21// 删除对象属性delete student1.saddress;console.log(student1.saddress); // undefined// 遍历对象属性for (let key in student1) {console.log(key); // sname, sage, sgender, sclass, sgrade, saddress}

4.对象使用-方法

1.定义对象方法:方法时成对出现的,包括方法名和匿名函数。

2.调用对象方法:通过对象.方法(),可以调用方法。

 <script>let student1 = {sname: '张三',sage: 20,sgender: '男',sclass: '101',sgrade: 10,study:function(){console.log('正在学习');}}console.log(student1.sname); // 张三console.log(student1.sage); // 20console.log(student1.sgender); // 男console.log(student1.sclass); // 101console.log(student1.sgrade); // 10// 给对象添加属性student1.saddress = '北京市海淀区';console.log(student1.saddress); // 北京市海淀区// 修改对象属性student1.sage = 21;console.log(student1.sage); // 21// 删除对象属性delete student1.saddress;console.log(student1.saddress); // undefined// 遍历对象属性for (let key in student1) {console.log(key); // sname, sage, sgender, sclass, sgrade, saddress}//调用方法student1.study();</script>

5.操作对象-增删改查

对象的本质是无序数据集合,操作对象数据无非是增删改查。

1.查询对象:对象.属性

2.修改对象:对象.属性=新值

3.增加对象内容:对象.新属性=新值 对象.新方法名=function(){}

4.删除对象内容:delete 对象名.属性名

 <script>//对象操作let person = {name: "张三",age: 20,gender: "男",run:function(){console.log(this.name + "正在奔跑...");}}//1.查找对象属性console.log(person.name); //张三console.log(person.age); //20console.log(person.gender); //男person.run(); //张三正在奔跑...//2.修改对象属性person.age = 21;console.log(person.age); //21console.log(person); //{name: "张三", age: 21, gender: "男", run: ƒ}//3.添加对象属性person.city = "北京";console.log(person.city); //北京console.log(person); //{name: "张三", age: 21, gender: "男", run: ƒ, city: "北京"}//4.删除对象属性delete person.age;console.log(person.age); //undefinedconsole.log(person); //{name: "张三", gender: "男", run: ƒ, city: "北京"}</script>

6.对象操作-[]

查的另一种写法

对于多词属性比如中横线分割的属性,点操作就不能用了。

可以使用:对象[‘属性’]的方法,单引号双引号都可以。

<script>let person = {'student-name':"张三",}//获取属性console.log(person['student-name']); //张三
</script>

多词属性或者需要解析变量的时候使用[]语法,其余直接使用点语法。

7.遍历对象

for遍历对象会有问题,因为对象没有长度。

所以需要采用 for in遍历对象.

语法:

for(let 变量 	in 对象){console.log(变量);console.log(对象[变量])
}
 <script>// 创建对象let obj = {name: "John",age: 30,city: "New York"}// 遍历对象for (let key in obj) {// 输出对象属性和值//只能使用[]访问属性,不能使用.访问属性,因为key是字符串,而.只能访问对象属性console.log(key + " : " + obj[key]);// name : John age : 30 city : New York}</script>

for in 语法中的k是一个变量,子啊循环的过程中依次代表对象的属性名。

由于k是变量,所以必须使用[]语法解析

一定记住:k是获取对象的属性名,对象名[k]是获取属性值

一般不使用这种方式遍历数组,主要是用来遍历对象。

8.遍历对象数组-渲染数据

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><!-- 渲染表格 --><table border="1"><tr><th>序号</th><th>姓名</th><th>年龄</th><th>性别</th><th>籍贯</th></tr><!-- 遍历对象数组 --><script>// 定义一个对象数组var arr = [{ name: '张三', age: 20, sex: '男', hometown: '北京' },{ name: '王五', age: 30, sex: '男', hometown: '广州' },{ name: '赵六', age: 35, sex: '女', hometown: '深圳' },]// 遍历对象数组for (var i = 0; i < arr.length; i++) {document.write("<tr>")document.write("<td>" + (i + 1) + "</td>")document.write("<td>" + arr[i].name + "</td>")document.write("<td>" + arr[i].age + "</td>")document.write("<td>" + arr[i].sex + "</td>")document.write("<td>" + arr[i].hometown + "</td>")document.write("</tr>")}</script></table>
</body></html>

9.内置对象

js内部提供的对象,包含各种属性和方法给开发者调用

比如Math对象,是js提供的一个数学对象

var x = Math.PI; // 返回 PI
var y = Math.sqrt(16); // 返回 16 的平方根

Math 对象方法

方法描述
abs(x)返回 x 的绝对值。
acos(x)返回 x 的反余弦值。
asin(x)返回 x 的反正弦值。
atan(x)以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x)返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
ceil(x)对数进行上舍入。
cos(x)返回数的余弦。
exp(x)返回 Ex 的指数。
floor(x)对 x 进行下舍入。
log(x)返回数的自然对数(底为e)。
max(x,y,z,…,n)返回 x,y,z,…,n 中的最高值。
min(x,y,z,…,n)返回 x,y,z,…,n中的最低值。
pow(x,y)返回 x 的 y 次幂。
random()返回 0 ~ 1 之间的随机数。
round(x)四舍五入。
sin(x)返回数的正弦。
sqrt(x)返回数的平方根。
tan(x)返回角的正切。
tanh(x)返回一个数的双曲正切函数值。
trunc(x)将数字的小数部分去掉,只保留整数部分。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// Math对象console.log(Math.PI); // 3.141592653589793console.log(Math.E); // 2.718281828459045console.log(Math.round(3.14)); // 3console.log(Math.floor(3.14)); // 3console.log(Math.ceil(3.14)); // 4console.log(Math.random()); // 0.12345678901234567  console.log(Math.max(1, 2, 3, 4, 5)); // 5console.log(Math.min(1, 2, 3, 4, 5)); // 1console.log(Math.pow(2, 3)); // 8console.log(Math.sqrt(16)); // 4console.log(Math.abs(-3)); // 3console.log(Math.sin(Math.PI/2)); // 1console.log(Math.cos(Math.PI/2)); // 6.123233995736766e-17console.log(Math.tan(Math.PI/4)); // 0.9999999999999999console.log(Math.asin(1)); // 1.5707963267948966console.log(Math.acos(0)); // 1.5707963267948966console.log(Math.atan(1)); // 0.7853981633974483console.log(Math.atan2(1, 2)); // 0.4636476090008061console.log(Math.exp(1)); // 2.718281828459045console.log(Math.log(2)); // 0.6931471805599453console.log(Math.log10(10)); // 1console.log(Math.log2(8)); // 3console.log(Math.pow(2, 3)); // 8console.log(Math.sqrt(16)); // 4console.log(Math.cbrt(27)); // 3console.log(Math.hypot(3, 4)); // 5</script>
</body>
</html>

Math随机数

Math.random()随机数,返回0–1之间,并且是包括0,但是它不包括1的随机小数。

 <script>// 生成随机数function randomNum() {return Math.random();}// 调用函数生成随机数console.log(randomNum());// 随机整数function randomInt(min, max) {// 随机数范围为 [min, max]// 因此需要生成 [min, max] 之间的随机整数// 因此需要生成 [0, max - min] 之间的随机数// 然后加上 min 即可得到 [min, max] 之间的随机整数return Math.floor(Math.random() * (max - min + 1)) + min;}//5-15之间的随机数console.log(randomInt(5, 15));// 调用函数生成随机整数console.log(randomInt(1, 100));</script>

10.demo 随机显示名字案例

 <script>//请把['张三', '李四', '王五', '赵六']随机显示一个名字到页面中//创建数组let names = ['张三', '李四', '王五', '赵六', '田七'];//生成随机数// Math.floor(Math.random() * (3 + 1));let random = Math.floor(Math.random() * names.length);//随机生成名字document.write(names[random]);</script>

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

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

相关文章

LabVIEW软件需求分析文档内容和编写指南

编写LabVIEW软件需求分析文档&#xff08;Software Requirements Specification, SRS&#xff09;是软件开发的关键步骤之一。以下是详细的内容结构、编写指南和注意事项&#xff1a; 内容结构 引言 项目背景&#xff1a;简要介绍项目背景和目的。 文档目的&#xff1a;说明需…

Java基础:类的详细说明

Java是一门面向对象的编程语言&#xff0c;所谓的面向对象&#xff0c;简单的说&#xff0c;就是在软件开发过程中&#xff0c;用各种各样的对象实现所需功能。 对象就好像是现实世界中不计其数的物体&#xff0c;根据物体的性质可以将其进行分门别类&#xff1a;石头、锤子、…

服务案例|网络攻击事件的排查与修复

LinkSLA智能运维管家V6.0版支持通过SNMP Trap对设备进行监控告警&#xff0c;Trap是一种主动推送网络设备事件或告警消息的方式&#xff0c;与SNMP轮询&#xff08;polling&#xff09;不同&#xff0c;具有以下几点优势&#xff1a; 1. 实时监控与快速响应 SNMP Trap能够实时…

如何在操作系统中合并 PDF 文件?不同系统有不同的方法

Windows 系统 在 Windows 系统中想要合并 PDF 文件我们可能需要借助一些第三方的软件或者浏览器的插件。 我们可以在 Google 浏览器中的 Chrome 应用商店中输入“Merge pdf”这样就可以搜索到在线合并 PDF 文件的插件&#xff0c;只需要下载到浏览器中就可以直接使用。当然 Ed…

【Unity Shader入门精要 第11章】让画面动起来(二)

1. 顶点动画的原理 顶点动画的原理是&#xff0c;在顶点着色器中按照一定的规则或函数计算得到一段偏移量对顶点进行移动&#xff0c;最后将改变位置后的顶点变换到裁剪空间进行后续的渲染工作。 可见&#xff0c;与纹理动画只是改变从纹理中哪一部分开始显示图案不同&#x…

visual studis 安装教程

1、下载软件 2、直接安装。根据自己的需求选择需要的模板类型。 如果是.net环境&#xff0c;可以选择.net项目&#xff1b; 如果是c环境&#xff0c;可以选择c项目模板&#xff0c;多个模板可以同时并存。 3、选择C模板&#xff0c;然后重新启动项目。 我是小路&#xff0c;一枚…

使用小猪APP分发打造高效的App封装工具

你是否曾经因为App封装和分发的复杂性而头疼不已&#xff1f;在这个移动应用迅速发展的时代&#xff0c;开发人员不仅需要专注于应用的功能和用户体验&#xff0c;还必须面对繁琐的封装和分发过程。幸运的是&#xff0c;小猪APP分发www.appzhu.cn正好为我们提供了一个简便而高效…

手绘任意波

更多内容&#xff0c;请访问我的网站&#xff1a;https://jiangge12.github.io/ 上位机发送手绘波形数据&#xff0c;下位机接收并输出。 支持 STM32 STC arduino Pico 等多种单片机&#xff0c;内置或外置 DAC 实现。

方法论与技术栈双管齐下的运维可用性能力建设(六)

2&#xff09;实战演练 &#xff08;1&#xff09;非交易期的实战切换 非交易期的实战切换和前面“例行可用性演练”中的切换差不多&#xff0c;只是切换后不马上切换回来&#xff0c;需要生产系统在备份模块中运行一段时间&#xff0c;或长期运行。比如&#xff0c;单数据中…

大模型额外篇章一:用huggingface的电影评论数据集情感分类训练模型

文章目录 一、介绍和准备1&#xff09;介绍2&#xff09;准备(安装依赖) 二、开始训练 一、介绍和准备 1&#xff09;介绍 工具&#xff1a;huggingface 目的&#xff1a;情感分类 输入&#xff1a;电影评论 输出&#xff1a;标签 [‘neg’,‘pos’] 数据源&#xff1a;https…

「架构」单元测试及运用

在参与管理和研发软件项目的过程中,单元测试的实际运用对于确保最终产品的质量至关重要。以下是一些实际运用的案例和说明。 静态测试的实际运用 在TechCorp的电子商务平台项目中,静态测试作为代码质量保证的第一道防线。开发团队在编写代码的同时,使用SonarQube等静态代码…

【学习Day1】计算机基础

✍&#x1f3fb;记录学习过程中的输出&#xff0c;坚持每天学习一点点~ ❤️希望能给大家提供帮助~欢迎点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;指点&#x1f64f; 1.1 中央处理单元CPU 中央处理器&#xff08;CPU&#xff0c;central processing unit&…

在全志H616核桃派开发板上进行音频配置的方法详解

耳机口​ 核桃派板载的3.5mm音频输出口&#xff0c;该接口有一定的输出功率&#xff0c;可以使用耳机或者带功放的扬声器都可以播放声音。 查看音频设备​ 可以使用下面指令来查看音频信息&#xff1a; aplay -l音频播放测试​ 播放系统自带wav音频文件测试, 下面指令的au…

控制台生产厂家生产流程详解

控制台生产厂家的生产流程是一个复杂而精细的过程&#xff0c;它涉及多个环节&#xff0c;从原材料的准备到最终产品的出厂检验&#xff0c;每一步都至关重要。以下是控制台生产厂家的一般生产流程&#xff1a; 厂家会根据客户的需求和市场趋势进行产品设计。设计师会综合考虑控…

闪电加载:Hexo博客性能优化全攻略

巴索罗缪大熊 前言 这些年积累了很多前端性能优化的知识点和思路&#xff0c;日常工作很少涉及技术层极限优化&#xff0c;近期终于一点点把博客独立搭建并部署了&#xff0c;对之前的一些技术点进行了深度探索&#xff0c;最终结果也达到了预期效果&#xff0c;由于水平有限&…

河北奥润顺达集团研究院PMO经理常江南受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 河北奥润顺达集团研究院PMO经理、研发部运营管理办负责人常江南先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“初建PMO的体系宣贯和人员培养实践总结”。大会将于6月29-30日在北京举办&#xff0c;敬请关注&#xf…

如何利用云平台上更好地规划安全生产教育与培训

在平台上进行安全教育和培训&#xff0c;可以采取以下步骤和策略&#xff0c;以确保教育的有效性和参与度&#xff1a; 一、明确教育目标和培训内容 确定教育目标&#xff1a;明确希望员工通过培训达到的安全意识和技能水平。 制定培训内容&#xff1a;根据行业特点、岗位需求…

centos7安装python-gdal环境

python3 yum install python3 python3-pip -y gdal-3.6.2 参考编译postgis python安装gdal export CPLUS_INCLUDE_PATH/usr/local/gdal-3.6.2/include export C_INCLUDE_PATH/usr/local/gdal-3.6.2/include export LDFLAGS"-L/usr/local/gdal-3.6.2/lib64" pip3…

猿编程是用什么语言编程的:深入剖析其背后的语言选择与魅力

猿编程是用什么语言编程的&#xff1a;深入剖析其背后的语言选择与魅力 猿编程&#xff0c;这个富有创意和活力的编程平台&#xff0c;引发了众多编程爱好者的关注。那么&#xff0c;猿编程究竟是用什么语言进行编程的呢&#xff1f;这背后又蕴含着怎样的语言选择与魅力&#…

wordpress子比主题文章付费发卡插件

插件仅适用于子比主题 插件演示 免费下载 &#xff1a;子比主题文章付费发卡插件_麦田吧 如下图&#xff0c;添加卡密支持批量添加&#xff0c;按照卡号&#xff08;英文逗号/空格/—-&#xff09;密码的格式输入&#xff0c;一行一条&#xff0c;可以直接添加数据&#xff0…