对象
-
对象是一种数据类型
-
无序的数据的集合
-
可以详细的描述描述某个事物
声明
let 对象名 = {
属性:属性值
方法:函数
}
//声明了一个名为person的对象
let person = {}
-
属性
- 信息或特征(名词)
- 属性都是成 对出现的,包括属性名和值,它们之间使用英文 : 分隔
- 多个属性之间使用英文 , 分隔
- 属性名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
-
属性访问
-
点形式 对象.属性
- 点后面的属性名一定不要加引号
-
[ ] 形式 对象[‘属性’]
- [ ] 里面的属性名一定加引号
-
let banban = {
name: '钟焕煜',
age: '12',
gender: '女',
checkPhone: function () {
console.log('你胸牌带了嘛?');
},
'sing song': '月亮之上'
}
console.log(banban);
console.log(banban.name);
console.log(banban.gender);
// []的方式进行属性访问 对象名['属性名'] 对象名[变量] []里面如果不加''会被当成变量
console.log(banban['name']);
console.log(banban['age']);
console.log(banban['sing song']);
-
方法
- 功能或行为(动词)
- 方法是由方法名和函数两部分构成,它们之间使用 : 分隔
- 多个属性之间使用英文 , 分隔
- 方法名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
-
方法访问
-
方法名后面加小括号
-
let goods = {
name: '小米',
num: 1000032313,
weight: '0.55kg',
address: '中国大陆',
play: function (game = '我的世界') {
console.log(`我要玩${game}`);
}
}
goods.play()//方法名后面加小括号
操作对象
let person = {
name: '李狗蛋',
age: 18
}
// 查:直接对象.属性即可
console.log(person.name);
console.log(person['age']);
// 增: 对象.属性 = 值 如果对象中没有设置的属性则会新增一个属性
person.sex = '男'
console.log(person);
// 增: 对象.方法 = 匿名函数 也可以动态为对象 添加方法,语法更加灵活
person.sayHi = function () {
console.log('大家好~请多多关照');
}
console.log(person);
person.sayHi()
// 改: 对象.属性 = 值 如果对象中有对应的属性则会更新属性值
person.name = '张翠花'
console.log(person);
// 删: delete 对象.属性
delete person.name
console.log(person);
-
增加属性
- 无论是属性或是方法,同一个对象中出现名称一样的,后面的会覆盖前面的
遍历对象
- for in
- 一般不用这种方式遍历数组、主要是用来遍历对象
- k 是获得对象的属性名, 对象名[k] 是获得 属性值
let person = {
name: '李狗蛋',
age: 18,
sex: '男'
}
// 利用 for in 遍历对象 key 代表属性名
for (let key in person) {
console.log(key);
// 在遍历对象的时候不能用 对象名.key的这种方式获取对象中的属性值
// console.log(person.key);
// 当前遍历的属性值
console.log(person[key]);
}
内置对象
// Math.random() 求从0 - 1 的随机数(包括0 不包括1)
console.log(Math.random())
// Math.ceil() 向上取整
console.log(Math.ceil(1.1));
console.log(Math.ceil(1.9));
console.log(Math.ceil(0.9));
console.log(Math.ceil(-0.9));
console.log(Math.ceil(-2.1));
// Math.floor() 向下取整
console.log(Math.floor(1.1));
console.log(Math.floor(1.9));
console.log(Math.floor(2.1));
console.log(Math.floor(-2.1));
console.log(Math.floor(-1.1));
// Math.max() 求最大值
console.log(Math.max(9, 3, 1, 45, 0));
// Math.min() 求最小值
console.log(Math.min(9, 3, 1, 45, 0));
// 四舍五入 Math.round()
console.log(Math.round(1.1));
console.log(Math.round(1.4));
console.log(Math.round(1.5));
console.log(Math.round(1.8));
// 幂运算
console.log(Math.pow(2, 10));
- 随机数
// 0 - 10的随机数
// Math.random() -> [0, 1)
// Math.random() * 10 -> [0,10)
// 向下取整 Math.floor()
// Math.random() * 11 -> [0,11)
// console.log(Math.floor(Math.random() * 11));
// 5 - 10的随机数
// 0 - 5的随机数 + 5
// console.log(Math.floor(Math.random() * (5 + 1)) + 5);
// 3 - 5的随机数 先做 0 - 2的随机数 Math.floor(Math.random() * (2 + 1))+3
// min - max 的随机数
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min
}
console.log(getRandom(20, 40))