11.对象

news2024/12/23 12:05:36

11.1什么是对象

●对象(object) : JavaScript里的一种数据类型
●可以理解为是一种无序的数据集合,注意数组是有序的数据集合

11.2对象的使用

1.对象的声明语法

(1)let对象名= {}
(2)let对象名=new Object()
//  {} 是对象字面量

2.对象由属性和方法组成
属性:信息或特征(名词)
方法:功能或行为(动词)

3.属性
属性名可以使用" "或’ ’,一般情况下省略,除非名称遇到特殊符号如空格、中横线等

'goods-name': 'vivo'

4.对象的本质是无序的数据集合,操作数据无非就是增删改查语法:
在这里插入图片描述
查——两种方法:

1)对象名.属性名
2)对象名[‘属性名’]
console.log(obj['goods-name'])

11.3对象中的方法

let person = {
name: 'andy' ,
sayHi: function() {
document.write( 'hi~~')
}
}
//调用:对象名.方法名()
person.sayHi()

●方法是由方法名和函数两部分构成,它们之间使用 : 分隔
●多个属性之间使用英文 , 分隔
●方法是依附在对象中的函数
●方法名可以使用" " 或 ",一般情况下省略,除非名称遇到特殊符号如空格、中横线等

11.4遍历对象

语法

let obj = {
uname:'andy',
age: 18,
sex: '男'
}
for (let k in obj) {
console.log(k)  // 打印属性名 (k相当于字符串'uname')
console.log(obj[k])  // 打印属性值
} 

●for in语法中的k是一个变量,在循环的过程中依次代表对象的属性名
●由于k是变量,所以必须使用[ ]语法解析
●一定记住:k是获得对象的 属性名,对象名[k]是获得 属性值

案例:遍历数组对象
【示例代码】

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        table {
            border-collapse: collapse;
            text-align: center;
            margin: 0 auto;
        }

        table caption {
            font-size: 18px;
            margin-bottom: 10px;
            font-weight: 700;
        }

        th,
        td {
            border: 1px solid #000;
            width: 100px;
            height: 40px;
            font-size: 14px;
        }

        tr {
            cursor: pointer;
        }

        table th {
            background-color: #cccccc;
        }

        table tr:hover {
            background-color: #cccccc;
        }
    </style>
</head>

<body>
    <h4></h4>
    <table>
        <caption>学生列表</caption>
        <tr>
            <th>序号</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>家乡</th>
        </tr>
        <!-- script写在这 -->
        <script>
            let students = [
                { name: '小明', age: 18, gender: '男', hometown: '河北省' },
                { name: '小红', age: 19, gender: '女', hometown: '河南省' },
                { name: '小刚', age: 17, gender: '男', hometown: '山西省' },
                { name: '小丽', age: 18, gender: '女', hometown: '山东省' }
            ]
			//渲染页面
            for (let i = 0; i < students.length; i++) {
                document.write(`
                <tr>
                    <td>${i + 1}</td>
                    <td>${students[i].name}</td>
                    <td>${students[i].age}</td>
                    <td>${students[i].gender}</td>
                    <td>${students[i].hometown}</td>
                </tr>
                `)
            }
        </script>
		//注意此处script写在table里面
    </table>
</body>

</html>

在这里插入图片描述

11.5内置对象

1.什么是内置对象
●JavaScript内部提供的对象,包含各种属性和方法给开发者调用
●例如我们之前用过的内置对象:
➢document.write()
➢console.log()

2.内置对象-Math
●介绍: Math对象是JavaScript提供的一个“数学”对象
●作用:提供了一系列做数学运算的方法
●Math对象包含的方法有:
➢ random:生成0-1之间的随机数(包含0不包括1) [0,1)
➢ ceil:向上取整

console.log(Math.ceil(1.1)) // 2

➢ floor:向下取整

console.log(Math.floor(1.9)) // 1

➢ max:找最大数
➢ min:找最小数
➢ pow: 幂运算
➢ sqrt:平方根
➢ abs:绝对值
➢ round:四舍五入

console.log(Math.round(-1.5)) // -1
console.log(Math.round(-1.51)) // -2

3.生成任意范围随机数
Math.random()随机数函数,返回一个0- 1之间,包括0不包括1的随机小数 [0, 1)
在这里插入图片描述

11.6随机点名案例

需求:请把[‘赵云’, ‘黄忠’’, ‘关羽’, ‘张飞’,‘‘马超’, ‘刘备’, ‘曹操’]随机显示一个名字到页面中,并删除这个名字
【示例代码】

let arr = ['赵云', '黄忠', '关羽', '张飞', '马超', '刘备', '曹操']
let random = Math.floor(Math.random() * arr.length)
console.log(arr[random])
arr.splice(random, 1)

11.7生成随机颜色案例

需求:该函数接收一个布尔类型参数,表示颜色的格式是十六进制还是rgb格式。
① 如果参数传递的是true或者无参数,则输出一个随机十六进制的颜色
② 如果参数传递的是false,则输出一个随机rgb的颜色
③ 格式:

function getRandomColor(flag){
	……
}
console.log(getRandomColor(true))  /#ffffff
console.log(getRandomColor(false))  //rgb(255,255,255)

分析:
提示: 16进制颜色格式为: ‘#ffffff’ 其中f可以是任意0-f之间的字符,需要用到数组
let arr=[‘0’,‘1’, ‘2’, ‘3’, ‘4’, ‘5’,‘6’, ‘7’,‘8’, ‘9’,‘a’, ‘b’, ‘c’,‘d’, ‘e’,‘f’]
提示: rgb颜色格式为: 'rgb(255,255,255) '其中255可以是任意0-255之间的数字
【示例代码】

// 自定义一个随机颜色函数
        function getRandomColor(flag = true) {
            // 如果true 返回#ffffff
            if (flag) {
                let arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
                let str = '#'
                for (let i = 0; i < 6; i++) {
                    let ran = arr[Math.floor(Math.random() * arr.length)]
                    str += ran
                }
                return str
            }
            // 否则是false 返回rgb(255,255,255)
            else {
                let r = Math.floor(Math.random() * 256)
                let g = Math.floor(Math.random() * 256)
                let b = Math.floor(Math.random() * 256)
                return `rgb(${r},${g},${b})`
            }
        }
        console.log(getRandomColor(false))
        console.log(getRandomColor(true))

在这里插入图片描述

11.8拓展-基本数据类型和引用数据类型

简单类型又叫做基本数据类型或者 值类型,复杂类型又叫做 引用类型

值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型
string,number, boolean, undefined, null

引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型。引用类型变量(栈空间)里存放的是地址,真正的对象实例存放在堆空间中。
通过new关键字创建的对象(系统对象、自定义对象),如Object、Array、Date等

堆栈空间分配区别:
1、(操作系统) : 由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。
简单数据类型存放到栈里面
2、(操作系统) : 存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。
引用数据类型存放到堆里面
在这里插入图片描述
区别

let num1 = 10
let num2 = num1
num2 = 20
console.log(num1) //10

let obj1 = {
   age: 18
}
let obj2 = obj1
obj2.age = 20
console.log(obj1) //20

在这里插入图片描述

11.9拓展-术语解释

在这里插入图片描述

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

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

相关文章

vue实现flv格式视频播放

公司项目需要实现摄像头实时视频播放&#xff0c;flv格式的视频。先百度使用flv.js插件实现&#xff0c;但是两个摄像头一个能放一个不能放&#xff0c;没有找到原因。&#xff08;开始两个都能放&#xff0c;后端更改地址后不有一个不能放&#xff09;但是在另一个系统上是可以…

振弦采集仪及在线监测系统完整链条的岩土工程隧道安全监测

振弦采集仪及在线监测系统完整链条的岩土工程隧道安全监测 近年来&#xff0c;随着城市化的不断推进和基础设施建设的不断发展&#xff0c;隧道建设也日益成为城市交通发展的必需品。然而&#xff0c;隧道建设中存在着一定的安全隐患&#xff0c;如地质灾害、地下水涌流等&…

Python(四十三)else语句

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

实用人工智能 2.0,在线“学习、探索和构建”ML 模型

人工智能爱好者过去需要在一个好的GPU上投资数千美元才能“动手”进行机器学习&#xff0c;但现在一个简单的网络浏览器就足够了。总部位于硅谷的非营利组织PracticalAI最近发布了“PracticalAI2.0”&#xff0c;该平台包括TensorFlow 2.0Keras中的说明性机器学习课程&#xff…

吉客云对接打通金蝶云星空分页查询出库单接口与其他出库新增接口

吉客云对接打通金蝶云星空分页查询出库单接口与其他出库新增接口 对接系统吉客云 杭州吉客云网络技术有限公司是经国家认定的高新技术企业&#xff0c;是国内领先的SaaSERP软件服务商&#xff0c;致力于为企业提供安全稳定、高可用性和高扩展性的一站式数字化解决方案。 接通系…

如何全面评价国内的低代码开发平台 (apaas)?

低代码开发平台是无需编码&#xff08;0代码&#xff09;或通过少量代码就可以快速生成应用程序的开发平台。 通过可视化进行应用程序开发的方法&#xff08;参考可视编程语言&#xff09;&#xff0c;使具有不同经验水平的开发人员可以通过图形化的用户界面&#xff0c;使用拖…

SpringBoot网上宠物领养管理系统【纯干货分享,免费领源码05971】

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;宠物行业当然也不例外。网上宠物领养管理系统是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff…

持续进化 | MWORKS 2023b正式上线,更新要点一文速览!

6月30日&#xff0c;同元软控成功举办MWORKS 2023b产品发布会&#xff0c;会上公布了新版MWORKS的产品特性、重大改进、关键技术以及设计理念。7月21日&#xff0c;科学计算与系统建模仿真平台MWORKS 2023b正式上线&#xff0c;开放下载。 此次更新的2023b版本带来了8个工具的重…

线段树----logn时间维护查询区间和/最大值/最小值

线段树 引入 线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。 线段树可以在 O(\log N) 的时间复杂度内实现单点修改、区间修改、区间查询&#xff08;区间求和&#xff0c;求区间最大值&#xff0c;求区间最小值&#xff09;等操作。 线段树的区间修改与懒惰标记 …

Day44 算法记录| 动态规划 10 (股票问题)

股票问题 123.买卖股票的最佳时机III188. 买卖股票的最佳时机 IV 123.买卖股票的最佳时机III 方法一&#xff1a;二维数组的讲解&#xff1a; class Solution {public int maxProfit(int[] prices) {int day prices.length;int[][] dp new int[day][5];//初始化dp[0][1] -p…

教你使用PHP实现一个轻量级HTML模板引擎

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;2023年6月csdn上海赛道top4。多年电商行业从业经验&#xff0c;对系统架构&#xff0c;数据分析处理等大规模应用场景有丰富经验。 &#x1f3c6;本文已收录于PHP专栏&#xff1a;PHP…

Ubuntu系统下:write_frames() got an unexpected keyword argument ‘audio_path‘

在部署Datid3d项目是遇到了一个imageio_ffmpeg的报错问题&#xff0c;网上也没有解决办法&#xff0c;在github上查看这个开源库时发现这个库的0.4.3和0.4.8的版本有差别&#xff0c;具体情况如下图&#xff1a; 0.4.3版本&#xff1a; 0.4.8版本&#xff1a; 我原先装得的是0…

AD 封装组件的水平/垂直间距报错

快捷键&#xff1a;D设计→R规则 一般情况下设置的都是&#xff1a;Electrical 下的Clearance 但是设置完了还是继续报错 是封装之间的水平间距问题 应该设置Placement 下的ComponentClearance

某网站搜索接口参数MD5加密又加盐逆向实战分析

1. 写在前面 最近在写爬虫的时候发现一些小网站上的MD5加密&#xff0c;在我们团队开发的千把个网站爬虫内发现这种MD5加密的案例还不少&#xff01;话不多说&#xff0c;直接拿出来分析一波 之后我准备抽时间总结出一个关于如何快速搜索与定位JS加密函数与分析与辨别常见加密…

dockerfile健康检查HEALTHCHECK

1、dockerfile示例 FROM registry.access.redhat.com/ubi9/ubi-init #关闭订阅管理器功能,便于使用dnf安装软件RUN sed -i s/d1/d0/ /etc/yum/pluginconf.d/subscription-manager.conf RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos…

【前端知识】JavaScript——5个迭代函数:every、filter、forEach、map、some

【前端知识】JavaScript——5个迭代函数&#xff1a;every、filter、forEach、map、some JavaScript高级程序设计(第4版)&#xff1a;ECMAScript 为数组定义了 5 个迭代方法。每个方法接收两个参数&#xff1a;以每一项为参数运行的函数&#xff0c;以及可选的作为函数运行上下…

心率血氧传感器方案

JFH142多光谱健康监测模块&#xff0c;无创采集人体的脉搏波&#xff0c;用户系统只需通过串口即可和模块通信&#xff0c;并且直接获得测量结果&#xff0c;为用户输出实时连续的心率、血氧、血管弹性等健康数据&#xff0c;并通过云端服务器的大数据平台将脉搏波数据进行算法…

双目视觉,立体视觉,双目标定,三维重建,深度估计,棋盘格,RAFTStereo,HitNet,深度估计

github:https://github.com/pcb9382/StereoAlgorithms gitee:https://gitee.com/peng-chuanbo/StereoAlgorithms StereoAlgorithms 简体中文 | English 如果觉得有用&#xff0c;不妨给个Star⭐️&#x1f31f;支持一下吧~ 谢谢&#xff01; Acknowledgments & Contact…

解决IDEA的git非常缓慢方法

解决IDEA的git非常缓慢方法 xxxx\IDEA2021.1.3\IntelliJ IDEA 2021.1.3\bin

2023最新Ubuntu安装部署Gitlab详细教程(每个步骤均配图)

Ubuntu安装配置Gitlab详细步骤 安装依赖 打开终端&#xff0c;运行如下命令&#xff1a; sudo apt updatesudo apt-get upgradesudo apt-get install curl openssh-server ca-certificates postfix接下来会遇到如下界面&#xff0c;Tab切换到“确定”按钮&#xff0c;然后回…