1. 概念
对象是 JavaScript 数据类型的一种,可以理解为是一种无序的数据集合
2. 对象的使用
2.1 对象的声明
let 对象名 = {}
let 对象名 = new Object()
2.2 属性和方法
数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的。
let 对象名 = {
属性名:属性值,
方法名:函数
}
- 属性都是成 对出现的,包括属性名和值,它们之间使用英文
:
分隔 - 多个属性之间使用英文
,
分隔 - 属性就是依附在对象上的变量
- 属性名可以使用
""
或''
,一般情况下省略,除非名称遇到特殊符号如空格、中横线等
3. 对象的操作
3.1 查
声明对象,并添加了若干属性后,可以使用 .
或 ['']
获得对象中属性对应的值,我称之为属性访问。
语法:法1:对象名.属性
法2: 对象名[‘属性名’]
3.2 改
语法:对象名.属性 = 新值
3.3 增
语法:对象名.新属性 = 新值
3.4 删
语法:delete 对象名.属性
3.5 对象的方法
数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数。
let person = {
name: '小红',
age: 18,
// 方法是由方法名和函数两部分构成,它们之间使用 : 分隔
singing: function () {
console.log('两只老虎,两只老虎,跑的快,跑的快...')
},
run: function () {
console.log('我跑的非常快...')
}
}
// 调用对象中 singing 方法
person.singing()
// 调用对象中的 run 方法
person.run()
- 方法是由方法名和函数两部分构成,它们之间使用
:
分隔 - 多个属性之间使用英文
,
分隔 - 方法是依附在对象中的函数
- 方法名可以使用
""
或''
,一般情况下省略,除非名称遇到特殊符号如空格、中横线等
- 声明对象,并添加了若干方法后,可以使用
.
或[]
调用对象中函数,称之为方法调用。
4. 遍历对象
let obj = {
uname:'andy',
age: 18,
sex:'男'
}
for(let k in obj) {
console.log(k) // 打印属性名
console.log(obj[k]) // 打印属性值
}
- 一般不用这种方式遍历数组、主要是用来遍历对象
- for in语法中的 k 是一个变量,在循环的过程中依次代表对象的属性名
- 由于k 是变量所以必须使用[]语法解析
- 一定记住:
k
是获得对象的属性名
,对象名[k]
是获得属性值
5. 内置对象
我们曾经使用过的 console.log
,console
其实就是 JavaScript 中内置的对象,该对象中存在一个方法叫 log
,然后调用 log
这个方法,即 console.log()
。
除了 console
对象外,JavaScritp 还有其它的内置的对象
Math
Math
是 JavaScript 中内置的对象,称为数学对象,这个对象下即包含了属性,也包含了许多的方法。
属性
- Math.PI,获取圆周率
// 圆周率
console.log(Math.PI);
方法
- Math.random,生成 0 到 1 间的随机数
// 0 ~ 1 之间的随机数, 包含 0 不包含 1
Math.random()
生成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
- Math.ceil,数字向上取整
// 舍弃小数部分,整数部分加1
Math.ceil(3.4)
- Math.floor,数字向下取整
// 舍弃小数部分,整数部分不变
Math.floor(4.68)
- Math.round,四舍五入取整
// 取整,四舍五入原则
Math.round(5.46539)
Math.round(4.849)
- Math.max,在一组数中找出最大的
// 找出最大值
Math.max(10, 21, 7, 24, 13)
- Math.min,在一组数中找出最小的
// 找出最小值
Math.min(24, 18, 6, 19, 21)
- Math.pow,幂方法
// 求某个数的多少次方
Math.pow(4, 2) // 求 4 的 2 次方
Math.pow(2, 3) // 求 2 的 3 次方
- Math.sqrt,平方根
// 求某数的平方根
Math.sqrt(16)
猜数字游戏:
<!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>
// 1. 随机生成一个数字 1~10
// 取到 N ~ M 的随机整数
function getRandom(N, M) {
return Math.floor(Math.random() * (M - N + 1)) + N
}
let random = getRandom(1, 10)
console.log(random)
// 需要不断的循环
while (true) {
// 2. 用户输入一个值
let num = +prompt('请输入你猜的数字:')
// 3. 判断输出
if (num > random) {
alert('您猜大了')
} else if (num < random) {
alert('您猜小了')
} else {
alert('猜对啦,真厉害')
break // 退出循环
}
}
</script>
</body>
</html>