【JavaScript】八、对象

文章目录

  • 1、对象的声明
  • 2、对象的使用
  • 3、对象中的方法
  • 4、遍历对象
  • 5、内置对象Math

1、对象的声明

  • 一种数据类型,使用typeof查看类型,结果是object
  • 可以详细的描述描述某个事物

在这里插入图片描述

声明语法:
在这里插入图片描述

// 多用花括号形式声明
// 比如声明一个person对象
let person = {}

JS对象 = 属性 + 方法(类似Java中,类 = 属性 + 方法)

在这里插入图片描述

  • 属性就是依附在对象上的变量(对象外面的是变量,对象内的是属性),是一对对无序的键值对
  • 多个属性之间用逗号隔开
  • 属性名可以使用双引号或者单引号,但一般省略不写,除非属性名有特殊字符,如空格、中横线-
let product = {goods: '小米',uname: '小米su7',num: '100012816024',weight: '0.55kg',address: '中国大陆'
}

2、对象的使用

在这里插入图片描述

  • 查:对象名.属性 或者 对象['属性名']
  • 改:对象名.属性 = 新值
  • 增:对象名.新属性 = 新值
  • 删:delete 对象名.属性
<body><script>let product = {goods: '小米',uname: '小米su7',num: '100012816024',weight: '300kg',address: '中国大陆'}// 查console.log(product.uname)// 改product.uname = '小米su7-海洋蓝'console.log(product.uname)// 增product.consumer = '顾客1'console.log(product.consumer)// 删delete product.weightconsole.log(product)product</script>
</body>

改一下,对象属性名改成改中横线的,属性名加引号,但此时访问,中横线会被当成是减号,unmade当成一个变量,从而报错:uname is not defined

在这里插入图片描述
此时,可用另一种查询语法:对象[‘属性名’]

console.log(product['goods-uname'])

3、对象中的方法

表示对象的行为或者动作,在JS中:

  • 方法是由方法名和函数两部分构成,它们之间使用 : 分隔
  • 方法是依附在对象中的函数
  • 方法名可以使用双引号或者单引号,但一般省略不写,除非属性名有特殊字符,如空格、中横线-

在这里插入图片描述

在对象中声明方法以后,通过对象名.方法名来调用(之前的document.write(‘请输入密码’))

在这里插入图片描述

<body><script>let person = {// 属性uname: '张三',// 方法calc: function (num1 = 0, num2 = 0) {console.log(num1 + num2)},// 第二个方法sing: function () {console.log('sing a song')}}// 方法调用person.calc(1, 3)</script>
</body>

4、遍历对象

直接用普通for循环的话,对象和数组不同,没有length属性,循环次数确定不了 ==> for in 循环

在这里插入图片描述

  • for in语法主要用来遍历对象
  • for in语法中的 k 是一个变量, 在循环的过程中依次代表对象的属性名
  • k 是获得对象的属性名, 对象名[k] 是获得属性值,且必须用[ ]的语法来解析,不能用对象名.属性名,因为k是属性名,是带有引号的,你用对象名.属性名,其实是person.'uname',并不是person.uname,所以必然得到undefined
<body><script>let product = {goods: '小米',"goods-uname": '小米su7',num: '100012816024',weight: '300kg',address: '中国大陆'}// 遍历for (let key in product) {console.log(`${key}: ${product[key]}`)}</script>
</body>

在这里插入图片描述

5、内置对象Math

即JS内部提供的对象,包含各种属性和方法给开发者调用,如document.write()、console.log(),Math就是JS提供的一个数学对象,主要方法:

  • random:生成0-1之间的随机数(包含0不包括1)
  • ceil:向上取整
  • floor:向下取整
  • max:找最大数
  • min:找最小数
  • pow:幂运算
  • abs:绝对值
<body><script>// 内置对象Math的属性// PIconsole.log(Math.PI)          // 3.141592653589793// 内置对象Math的方法// 向上取整console.log(Math.ceil(1.1))   // 2// 向下取整console.log(Math.floor(1.1))  // 1// 四舍五入console.log(Math.round(1.5))  // 2// 最值console.log(Math.max(1, 2, 3, 4, 5))  //5console.log(Math.min(1, 2, 3, 4, 5))  //1// 绝对值console.log(Math.abs(-1))   // 1// 次幂console.log(Math.pow(2, 3)) // 2的3次方</script>
</body>

Math.random() 随机数函数, 返回一个0 - 1之间,并且包括0不包括1的随机小数 [0, 1),左闭右开

// 生成0-10的随机整数
Math.floor(Math.random() * (10 + 1))
// 生成5-10的随机整数
Math.floor(Math.random() * (5 + 1)) + 5

生成N-M之间的随机数:Math.floor(Math.random() * (M - N + 1)) + N

<body><script>function getRandon(M, N) {return Math.floor(Math.random() * (M - N + 1)) + N}console.log(getRandon(3, 9))</script>
</body>

抽取数组中的随机一个元素:

<body><script>function getRandonElement(arr = []) {let random = Math.floor(Math.random() * arr.length)return arr[random]}console.log(getRandonElement([3, 9, 4, 6, 7]))</script>
</body>

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

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

相关文章

C++指针(五)完结篇

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 相关文章&#xff1a;C指针&#xff08;一&#xff09;、C指针&#xff08;二&#xff09;、C指针&#xff08;三&#xff09;、C指针&#xff08;四&#xff09;万字图文详解&#xff01; 本篇博客是介…

DataGear 企业版 1.4.0 发布,数据可视化分析平台

DataGear 企业版 1.4.0 已发布&#xff0c;欢迎体验&#xff01; http://datagear.tech/pro/ 企业版 1.4.0 看板可视编辑模式新增了插入看板表单/面板布局、编辑图表联动、复制/粘贴、撤销/恢复等功能&#xff0c;具体更新内容如下&#xff1a; 新增&#xff1a;看板可视编辑…

windows第十八章 菜单、工具栏、状态栏

文章目录 创建框架窗口菜单菜单的风格通过资源创建菜单菜单的各种使用通过代码创建菜单在鼠标位置右键弹出菜单 CMenu常用函数介绍工具栏方式一&#xff0c;从资源创建工具栏方式二&#xff0c;代码创建 状态栏状态栏基础创建状态栏 创建框架窗口 手动创建一个空项目&#xff…

局域网共享失败?打印机/文件夹共享工具

很多时候&#xff0c;在办公或家庭环境中&#xff0c;我们需要进行打印机和文件夹的共享&#xff0c;以便更高效地协作和处理文件。然而&#xff0c;寻找对应版本的共享设置或是不想花费太多时间去进行复杂的电脑设置&#xff0c;总是让人感到头疼。今天&#xff0c;我要向大家…

C++中使用CopyFromRecordset将记录集拷贝到excel中时,如果记录集为0个,函数崩溃,是什么原因

文章目录 原因分析解决方案1. 检查记录集是否为空2. 安全调用COM方法3.进行异常捕获4. 替代方案&#xff1a;手动处理空数据 总结 在C中使用CopyFromRecordset将空记录集&#xff08;0条记录&#xff09;复制到Excel时崩溃的原因及解决方法如下&#xff1a; 原因分析 空记录集…

torchvision中数据集的使用

1、torchvision及其数据集的介绍 1.1 torchvision介绍 torchvision 是 PyTorch 的一个官方库&#xff0c;专门用于计算机视觉任务。它提供了以下核心功能&#xff1a; 预训练模型&#xff1a;如 ResNet、VGG、EfficientNet 等。数据集&#xff1a;内置常用视觉数据集&#xf…

d2025328

一、sql-判断三角形 610. 判断三角形 - 力扣&#xff08;LeetCode&#xff09; 用一下if加上判断条件 select x,y,z,if(xy > z and xz > y and yz > x and x-y < z and x-z < y and y-z < x,Yes,No) as triangle from Triangle 二、按照分类统计薪水 190…

C++20新特性:std::assume_aligned详解

文章目录 一、概述二、函数定义与语法三、使用方法与注意事项1. 使用方法2. 注意事项 四、性能优化原理五、实际应用场景六、编译器支持情况七、总结 一、概述 C20引入了std::assume_aligned&#xff0c;这是一个非常实用的特性&#xff0c;用于告知编译器某个指针所指向的对象…

洛谷P1706 全排列题解

P1706 全排列问题 题目描述 按照字典序输出自然数 1 1 1 到 n n n 所有不重复的排列&#xff0c;即 n n n 的全排列&#xff0c;要求所产生的任一数字序列中不允许出现重复的数字。 输入格式 一个整数 n n n。 输出格式 由 1 ∼ n 1 \sim n 1∼n 组成的所有不重复的…

yum install 报错(CentOS换源):

yum instally yum utils device mapper persistent-data lvm2 报错&#xff1a; 排查错误原因&#xff1a;centos7 系统停止维护了 解决方案&#xff1a;换源&#xff08;更换操作系统&#xff09; //1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-…

C语言学习笔记(抱佛脚版)

毕业一年&#xff0c;发现记性是真的差&#xff0c;每次想起之前的知识总是想不全&#xff0c;看别人写的资料也懵懵懂懂。于是我索性自己再学一遍&#xff0c;并且记录一下。希望对你们也有所帮助。 正片开始&#xff01; 前面的什么if for都不难理解&#xff0c;嵌套的话也…

攻破tensorflow,勇创最佳agent(2)---损失(loss) 准确率(accuracy)问题

实战播: 怎么判定一个模型好不好,你设置的值对不对? 需要再看几个值: 例如: model Sequential()for units in model_structure:model.add(Dense(units, activationrelu))model.add(Dropout(train_config.get(dropout_rate, 0.3)))model.add(Dense(1, activationsigmoid)) 他…

Docker-Volume数据卷详讲

Docker数据卷-Volume 一&#xff1a;Volume是什么&#xff0c;用来做什么的 当删除docker容器时&#xff0c;容器内部的文件就会跟随容器所销毁&#xff0c;在生产环境中我们需要将数据持久化保存&#xff0c;就催生了将容器内部的数据保存在宿主机的需求&#xff0c;volume …

使用Selenium和lxml库搜房网爬取某地区房屋信息(python、pycharm爬虫)

一、地址&#xff1a; url "https://zb.newhouse.fang.com/house/s/b91" # 第一页的 URL 但是这个爬虫我不知道为啥总是翻不了页数&#xff0c;请帮忙修改一下~ 二、用到的知识点以及代码详解&#xff1a; 这段代码是一个使用Selenium和lxml库实现的网页爬虫&a…

ai画图comfyUI 精准定位gligen。允许指定图像中多个对象的位置和大小

基础功能下&#xff0c;outpainting是内容填充&#xff0c;拉近拉远镜头&#xff0c;自动填充旁边物体。嵌入模型也需要单独下载&#xff0c;演示完示例后推荐模型站有更直观效果介绍和用法。选中精确定位。看一眼坐标&#xff0c;直接默认出一张图。然后修改定位&#xff0c;和…

如何自动化同义词并使用我们的 Synonyms API 进行上传

作者&#xff1a;来自 Elastic Andre Luiz 了解如何使用 LLM 来自动识别和生成同义词&#xff0c; 使术语可以通过程序方式加载到 Elasticsearch 同义词 API 中。 提高搜索结果的质量对于提供高效的用户体验至关重要。优化搜索的一种方法是通过同义词自动扩展查询词。这样可以更…

boost.asio

as&#xff08;async&#xff09;:异步 同步io&#xff1a; reactor (非阻塞)&#xff08;需要注册一次&#xff0c;在等待消息时可以干别的事&#xff09; 阻塞io网络模型 接口&#xff1a;read\accept\connect\write 接口返回时&#xff0c;io完成 异步…

数据库后续

-- 添加作者字段 alter table t_hero add author varchar(100); -- 更新数据 update t_hero set author "曹雪芹" where id 1; update t_hero set author "曹雪芹" where id 2; update t_hero set author "曹雪芹" where id 3; upd…

计算机网络基础:网络流量工程与优化策略

计算机网络基础:网络流量工程与优化策略 一、前言二、网络流量工程基础2.1 网络流量工程的定义与目标2.2 网络流量的测量与分析2.2.1 常用的流量测量方法2.2.2 流量数据分析三、网络流量工程的优化策略3.1 链路负载均衡策略3.1.1 基于目的地址的负载均衡3.1.2 基于流量权重的负…

H5DS编辑器教程——H5页面触发动画实战指南

在 H5 页面设计中&#xff0c;触发动画通过动态交互提升用户体验&#xff0c;成为吸引注意力的关键手段。H5DS 编辑器作为一款高效的可视化工具&#xff0c;提供了丰富的动画制作功能&#xff0c;即使是零基础用户也能轻松实现专业级效果。 使用工具&#xff1a;H5DS编辑器 触…