JavaScript中的对象
对象(object)是JavaScript里的一种数据类型,可以理解为一种无序的数据集合(数组是有序的数据集合),通常用来描述某个事物。
语法:
let 对象名 = {}
let 对象名 = new Object()
对象由属性和方法组成:
- 属性:信息或特征。比如手机尺寸、颜色、重量等
- 方法:功能或行为。比如手机打电话、发短信、玩游戏等
属性
数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般都是名词性的。
- 属性都是成对出现的,包括属性名和属性值,它们之间用英文分隔
对象的使用
属性和访问
数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的。
- 属性都是成 对出现的,包括属性名和值,它们之间使用英文的冒号分隔
- 多个属性之间使用英文的逗号分隔
- 属性就是依附在对象上的变量
- 属性名可以使用双引号或单引号,一般情况下省略,除非名称遇到特殊符号如空格、中横线等
声明对象,并添加了若干属性后,可以使用 .
或 []
获得对象中属性对应的值,我称之为属性访问。
let person = {
name: '小明',
age: 18,
gender: '男',
};
console.log(person.name) // 结果为 小明
console.log(person.gender) // 结果为 男
console.log(person['age']) // 结果为 185,一定要加引号
console.log(person.age) // 结果同为 185
同数组一样,对象也可以动态添加属性,动态添加与直接定义是一样的,只是语法上更灵活。
let user = {}
// 动态追加属性
user.name = '小明' // 有改无增
user['age'] = 18
delete user.age // 删除对象中的属性
方法和调用
数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数。
- 方法是由方法名和函数两部分构成,它们之间使用英文冒号分隔
- 多个属性之间使用英文逗号分隔
- 方法是依附在对象中的函数
- 方法名可以使用双引号或单引号,一般情况下省略,除非名称遇到特殊符号如空格、中横线等
let person = {
name: '小红',
age: 18,
singing: function () { // 定义方法
console.log('abc') // 打印abc
},
run: function () { // 打印123
console.log('123')
}
}
person.singing() // 调用对象中的 singing 方法
person.run() // 调用对象中的 run 方法
和添加属性一样,对象动态添加方法,动态添加与直接定义是一样的,只是语法上更灵活。
let user = {}
user.name = '小明' // 动态追加属性
user.['age'] = 18 // 动态追加属性
// 动态添加方法
user.move = function () {
console.log('移动一点距离...')
}
遍历对象
对象只能通过for in
来遍历,因为它的属性的存储是无序的,不像数组是有序的,可以用下标来遍历。
let obj = {
uname: 'abc'
age: 18
sex: '男'
}
for(let k in obj) {
// k 中存储的是属性名,是字符串 k === 'uname' ,obj.k === obj.'uname'
// obj[k] 属性值 obj[k] === obj['uname']
}
null
null 也是 JavaScript 中数据类型的一种,通常只用它来表示不存在的对象。使用 typeof 检测类型它的类型时,结果为 object
。
内置对象
回想一下我们曾经使用过的 console.log
,console
其实就是 JavaScript 中内置的对象,该对象中存在一个方法叫 log
,然后调用 log
这个方法,即 console.log()
。
除了 console
对象外,JavaScritp 还有其它的内置的对象,如document.write()
Math
Math
是 JavaScript 中内置的对象,称为数学对象,这个对象下即包含了属性,也包含了许多的方法。
属性
- Math.PI —— 获取圆周率
// 打印圆周率
console.log(Math.PI);
方法
Math.random —— 生成 0 到 1 间的随机数(小数)
// 0 ~ 1 之间的随机数, 包含 0 不包含 1 ,经常用来求随机数
Math.random()
Math.ceil —— 数字向上取整
// 舍弃小数部分,整数部分加1
Math.ceil(3.4) // 4
Math.floor —— 数字向下取整
// 舍弃小数部分,整数部分不变
Math.floor(4.68) // 4
Math.round —— 四舍五入取整
// 取整,四舍五入原则
Math.round(5.46539) // 5
Math.round(4.849) // 5
Math.max —— 在一组数中找出最大的
// 找出最大值
Math.max(10, 21, 7, 24, 13) // 24
Math.min —— 在一组数中找出最小的
// 找出最小值
Math.min(24, 18, 6, 19, 21) // 6
Math.pow —— 幂方法
// 求某个数的多少次方
Math.pow(4, 2) // 求 4 的 2 次方,16
Math.pow(2, 3) // 求 2 的 3 次方,8