- 一种数据类型
- 可以理解为一堆数据的集合
- 用来表示某个事物
由属性和方法组成
语法
属性
let 对象名 = {
属性名:值,
属性名:值,
属性名:值
}
//例
let person = {
uname:'andy',
age:18,
sex:'男'
}
对象的属性没有顺序,属性和值之间用冒号:
属性之间用,
方法
本质是函数
let person = {
name: "andy",
sayHi: function () {
document.write("hi~~")
}, //注意加逗号
}
- 方法是由方法名和函数两部分构成,它们之间使用
:
分隔 - 多个属性之间使用英文
,
分隔 - 方法是依附在对象中的函数
- 方法名可以使用 “” 或 ”,一般情况下省略,除非名称遇到特殊符号如空格、中横线等
对象使用
属性访问
//两种方式(根据场景使用)
let person = {
name:'andy',
age:18,
sex:'男'
}
// 对象名.属性名
console.log(person.name)
console.log(person.age)
// 对象名['属性名']
console.log(person['name'])
console.log(person['age'])
方法访问
let person = {
name: "andy",
sayHi: function () {
document.write("hi~~")
}, //注意加逗号
}
//调用 注意需要加小括号
person.sayHi()
操作对象
增加/修改
如果对象没有该属性,则增加该属性,如果有,则修改属性值
动态添加与直接定义是一样的,只是语法上更灵活
let obj = {
name: 'andy'
}
//增加属性
//对象名.新增属性名 = 属性值
obj.hobby = '拍照'
obj['sex'] = '男'
//新增对象中的方法
//对象名.新增方法名 = 方法
obj.move = function(){
document.write('12')
}
注:无论是属性或是方法,同一个对象中出现名称一样的,后面的会覆盖前面的
删除对象中的属性(了解)
//delete 对象名.属性名
delete obj.age
遍历对象
- 对象没有像数组一样的length属性,所以无法确定长度
- 对象里面是无序的键值对, 没有规律. 不像数组里面有规律的下标
//for(let k 对象名){}
for(let k in obj){
console.log(k) //属性名
}
//得到属性值 k是变量不要加引号!
console.log(obj[k])
// k存的是字符串 === '属性名'
//——————————————————
//console.log(obj.k) 错误!! 找的是obj里面的k属性
内置对象
例如:
document.write()
console.log()
Math
方法Math.*() | |
---|---|
random | 生成0-1之间的随机数(包含0不包括1) |
ceil | 向上取整 |
floor | 向下取整 |
round | 就近取整 |
max | 找最大数 |
min | 找最小数 |
pow | 幂运算 |
abs | 绝对值 |
… | … |
console.log(Math.PI) // 圆周率 π
console.log(Math.random()) // 随机数 随机抽奖 随机点名
// 返回的是小数 但是能得到 0 得不到 1
// 向上取整 返回的整数
console.log(Math.ceil(1.1)) // ceil 2
console.log(Math.ceil(1.5)) // ceil 2
console.log(Math.ceil(1.9)) // ceil 2
// 向下取整 返回的整数 floor
console.log(Math.floor(1.1)) // floor 1
console.log(Math.floor(1.5)) // floor 1
console.log(Math.floor(1.9)) // floor 1
console.log('-------------------------------')
// round 就近取整( .5往大取整) 返回的整数
console.log(Math.round(1.1)) // round 1
console.log(Math.round(1.5)) // round 2
console.log(Math.round(1.9)) // round 2
console.log('-------------------------------')
console.log(Math.round(-1.1)) // round -1
console.log(Math.round(-1.5)) // round -1
console.log(Math.round(-1.9)) // round -2
// 最大值和最小值
console.log(Math.max(1, 5, 9, 45))
console.log(Math.min(1, 5, 9, 45))
生成任意范围的随机数
//生成N-M之间的随机数
Math.floor(Math.random() * (M - N + 1)) + N