对象介绍
对象(object):JavaScript里的一种数据类型
可以理解为是一种无序的数据集合
用来描述某个事物
例如
个人信息描述:
静态特征 (姓名, 年龄, 身高, 性别, 爱好) => 可以使用数字, 字符串, 数组, 布尔类型等表示
动态行为 (点名, 唱, 跳, rap) => 使用函数表示
对象使用
对象声明语法
![](https://img-blog.csdnimg.cn/ab0b9029463e4f1fb6d81f7fb04d26b1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATEY3MjE=,size_17,color_FFFFFF,t_70,g_se,x_16)
对象有属性和方法组成
属性:信息或叫特征(名词)。
方法:功能或叫行为(动词)。
数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的
![](https://img-blog.csdnimg.cn/75d51d70c4c14f4fb4b15d5bbb7d9048.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATEY3MjE=,size_13,color_FFFFFF,t_70,g_se,x_16)
属性都是成 对出现的,包括属性名和值,它们之间使用英文
:
分隔
多个属性之间使用英文
,
分隔
属性就是依附在对象上的变量(外面是变量,对象内是属性)
属性名可以使用 "" 或 '',
一般情况下省略
,除非名称遇到特殊符号如空格、中横线等
属性访问
声明对象,并添加了若干属性后,可以使用 . 或 [] 获得对象中属性对应的值,我称之为属性访问。
简单理解就是获得对象里面的属性值。
方法一
![](https://img-blog.csdnimg.cn/3e2c81d12d0e433f929ad29aaf986a9f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATEY3MjE=,size_17,color_FFFFFF,t_70,g_se,x_16)
方法二
![](https://img-blog.csdnimg.cn/405efbbdfeb141bba75dfa1e0d4a5a70.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATEY3MjE=,size_17,color_FFFFFF,t_70,g_se,x_16)
对象中的方法
数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数。
1. 方法是由方法名和函数两部分构成,它们之间使用 : 分隔
2. 多个属性之间使用英文 , 分隔
3. 方法是依附在对象中的函数
4. 方法名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
对象中的方法访问
声明对象,并添加了若干方法后,可以使用 . 调用对象中函数,我称之为方法调用
![](https://img-blog.csdnimg.cn/34eb8741513e4354a4d0ca24d7c90403.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATEY3MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
注意: 千万别忘了给方法名后面加小括号
操作对象
对象本质是无序的数据集合, 操作数据无非就是
增 删 改 查
语法:
![](https://img-blog.csdnimg.cn/857b1c94ba63448fac090a2f9bf86abc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATEY3MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
增加属性
也可以动态为对象添加属性,动态添加与直接定义是一样的,只是语法上更灵活。
![](https://img-blog.csdnimg.cn/cbec0cf1c94a47d0b13d702803506b03.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATEY3MjE=,size_17,color_FFFFFF,t_70,g_se,x_16)
新增对象中的方法
![](https://img-blog.csdnimg.cn/eb571947bbe542d8a4f6b243306cae3d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATEY3MjE=,size_20,color_FFFFFF,t_70,g_se,x_16)
注:无论是属性或是方法,同一个对象中出现名称一样的,后面的会覆盖前面的。
遍历对象
一般不用这种方式遍历数组、主要是用来遍历对象
一定记住:
k
是获得对象的
属性名
,
对象名[k]
是获得
属性值
案例
猜数字游戏
需求:程序随机生成 1~10 之间的一个数字,用户输入一个数字
分析:
①:利用随机数生成一个数字
②:需要一直猜,所以需要不断的循环
③:因为条件是结果猜对了,就是判断条件退出,用while循环合适
④:内部判断可以用多分支语句
<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 src="./public.js"></script>
<script>
// 1. 需要随机生成 1~10之间的数字
let num = getRandom(1, 10) // 5
// 2. 开始循环 ----> 有一个弹出框 让用户输入数字
while (true) {
let num1 = +prompt('请输入数字:')
if (num1 > num) {
alert('猜大了')
} else if (num1 < num) {
alert('猜小了')
} else {
alert('猜对了,太🐮了')
break
}
}
// 1. 需要随机生成 1~10之间的数字
// 2. 开始循环 ----> 有一个弹出框 让用户输入数字
// 3. 拿随机生成的数字与 用户输入的数字比较 如果用户输入的数字比 随机生成的数字要大 则提示 猜大了
// 3. 拿随机生成的数字与 用户输入的数字比较 如果用户输入的数字比 随机生成的数字要小 则提示 猜小了
// 3. 拿随机生成的数字与 用户输入的数字比较 相等 提示用户猜对了 退出循环
</script>
</body>
</html>