对象
一、什么是对象?
1.对象(object):JavaScript里的一种数据类型 2.可以理解为是一种无序的数据集合 3.可以详细的描述描述某个事物
比如描述 一个人的 信息: 静态特征 (姓名, 年龄, 身高, 性别, 爱好) => 可以使用数字, 字符串, 数组, 布尔类型等表示 动态行为 ( 唱, 跳, rap。打篮球,) => 使用函数表示
二、对象的使用
1.对象声明语法
let 对象名={}
<script>
// 声明一个变量
let person ={}
</script>
2.对象由属性和方法组成
①属性:信息或叫特征(名词)。 比如 手机尺寸、颜色、重量等… ②方法:功能或叫行为(动词)。 比如 手机打电话、发短信、玩游戏…
let 对象名={
属性名:属性值,
方法名:函数
}
3,属性
数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的。
<script>
let person={
name:'jack',
age:20,
sex:'男'
}
</script>
注意: ①属性都是成 对出现的,包括属性名和值,它们之间使用英文 : 分隔 ②多个属性之间使用英文 , 分隔 ③属性就是依附在对象上的变量(外面是变量,对象内是属性)
4.属性访问
声明对象,并添加了若干属性后,可以使用 . 或 [] 获得对象中属性对应的值,就是获得对象里面的属性值。
<script>
let person={
name:'jack',
age:20,
sex:'男'
}
// 方法1:
console.log(person.name)
console.log(person.age)
// 方法2:
console.log(person['name'])
console.log(person['age'])
</script>
</body>
5.对象中的方法
数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数。
<script>
let person={
name:'jack',
sayHi:function () {
document.write('hi~')
}
}
</script>
①方法是由方法名和函数两部分构成,它们之间使用 : 分隔 ②多个属性之间使用英文 , 分隔 ③方法是依附在对象中的函数
6.对象中的方法访问
声明对象,调用对象中函数,
<script>
let person = {
name:"jack",
sayHi:function () {
document.write('hi~')
}
}
// 对象名,方法名()
person.sayHi()
</script>
注意: 千万别忘了给方法名后面加小括号
三、操作对象
对象本质是无序的数据集合, 操作数据无非就是 增 删 改 查 语法:
1.增加属性
<script>
let person = {
username: '程序猿',
};
增加 一个新的属性
person.username="普通人";
修改
person.username = '普通人';
</script>
增加属性和修改属性都是同样的写法
如果该属性对象中没有,表示新增
如果该属性对象中已经存在,表示修改
2.新增对象中的方法
<script>
let person = {};
新增一个方法 匿名函数 固定写法
person.sayHi = function () {
document.write('这个是我们新增的sayHi 方法');
};
</script>
3.删除对象中的属性
<script>
// 声明一个对象
let person={
username:"海贼王"
};
// 不想看了 给删除掉
delete person.username; // 删除对象中的 username属性
console.log(person.username); // undefined
</script>
四、遍历对象
<script>
// 创建一个对象
let person = {
age: 18,
username: '普通人',
height: 180,
};
// 遍历对象 forin
for (let k in person) {
// console.log(k);
// console.log(person.k); // 找对象中 属性名 "k"
// k 表示变量 k = "username"
// console.log(person[k]);
// person["username"] // k 表示变量 k = "username"
console.log((k ) (person['k']));
}
</script>
注意: k 是获得对象的属性名, 对象名[k] 是获得 属性值
五、内置对象
内置对象Math提供了一系列做数学运算的方法
<script>
// 常用
random() 返回一个随机数 包含0 不包含1
console.log(Math.random());
上取整
Math.ceil(0.1) = 1
Math.ceil(0.001) = 1
console.log(Math.ceil(0.1));
下取整
console.log(Math.floor(1.9)); // 1
四舍五入
console.log(Math.round(0.4));
求最大值 数学对象内置有方法 算出来 最大值和最小值
console.log(Math.max(1,2,3,4,5,6,77,4));
最小值
console.log(Math.min(1,2,3,4,5,6,77,4));
幂运算 对某个数字 平方 或者 立方。。。
2 平方 = 2 * 2
2 立方 = 2 * 2 * 2
console.log(Math.pow(2, 3)); // 2立方 3个2相乘
console.log(Math.pow(2, 2)); // 2平方
console.log(Math.pow(3, 2)); // 3 的平方
绝对值 -1 = 1 -2 = 2
console.log(Math.abs(-2));
console.log(Math.abs(-3));
</script>
案例1
<script>
1. Math.random()
返回 0~1
2. 0~1 * 10 => 0 ~ 10
Math.random() * 10
3. 真的可以取到0 取到10
Math.round(Math.random() * 10)
</script>
案例2
<script>
function getRandom(min, max) {
return Math.round(Math.random() * (max - min) + min);
}
console.log(getRandom(0,10));
console.log(getRandom(5,10));
console.log(getRandom(6,10));
</script>
!!!公式Math.random() * (最大值 - 最小值) + 最小值 如Math.random() *(10-0)+0