对象
对象是JavaScript数据类型的一种,可以被理解成一种数据集合,由属性和方法两部分组成。
语法
声明一个对象类型的变量与之前声明一个数值或字符串类型的变量没有本质上的区别
// 声明字符串类型变量
let str = 'hello world!'
// 声明数值类型变量
let num = 199
// 声明对象类型变量,使用一对花括号
// user 便是一个对象了,目前它是一个空对象
let user = {}
一、属性
数据描述性的信息称为属性,如人的姓名、身高、体重,一般是名词性的。
-
属性是以属性名和值在一起成对出现的 (属性名
:
属性值) -
多个属性之间用英文
,
进行分隔 -
属性是依附在对象上的变量
-
属性名可以使用
""
或''
,一般情况下省略,除非名称遇到特殊符号空格、中横线等
例:
let person = {
name: '张三',
age: 18,
stature: 185,
gender: '男',
}
声明对象,并添加了若干属性后,可以使用 .
或 []
获得对象中属性对应的值
例:
console.log(person.name) // 张三
console.log(person.gender) // 男
console.log(person['stature']) // 185
console.log(person.stature) // 185
也可以动态为对象添加属性,动态添加与直接定义是一样的只是语法上更灵活
例:
let user = {}
// 动态追加属性
user.name = '张三'
user['age'] = 18
二、方法
数据行为性的信息称为方法,比如跑步、唱歌等,一般是动词性的,其本质是函数。
-
方法是由方法名和函数两部分构成 (方法名
:
函数) -
多个方法之间使用英文
,
分隔 -
方法是依附在对象中的函数,在对象外的叫函数,在对象里的叫方法
-
方法名可以使用
""
或''
,一般情况下省略,除非名称遇到特殊符号空格、中横线等
例:
let person = {
name: '李四',
age: 18,
singing: function () {
console.log('Do you wanna build a snowman~?')
},
run: function () {
console.log('runrunrun~')
}
}
声明对象,并添加了若干方法后,可以使用 .
或 []
调用对象中函数
例:
// 调用对象中 singing 方法
person.singing()
// 调用对象中的 run 方法
person.run()
也可以动态为对象添加方法,动态添加与直接定义是一样的,只是语法上更灵活。
例:
let user = {}
user.name = '李四'
user.['age'] = 18
// 动态添加方法
user.move = function () {
console.log('move')
}
无论是属性或是方法,同一个对象中出现名称一样的,后面的会覆盖前面的。
null 也是 JavaScript 中数据类型的一种,通常只用它来表示不存在的对象。使用 typeof
检测类型它的类型时,结果为 object
。
遍历对象
for in
-
一般不用来遍历数组 主要用于遍历对象
-
k 指 key 在循环的过程中一次代表对象的属性名
-
由于 k 是变量所以必须使用 [] 语法解析
-
k 是获得对象的属性名 对象名[k] 是获得属性值
例:
let obj = {
name: '张三',
age: 18,
gender: '男'
}
for(let k in obj){
console.log(k); //属性名
console.log(obj[k]); //属性值
}
内置对象
console
其实就是 JavaScript 中内置的对象,该对象中存在一个方法叫log
,然后调用log
这个方法,即console.log()
。除了
console
对象外,JavaScript还有其它的内置的对象,如documen.write()
、alert()
等
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)
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)
注:在MDN中搜索 Math 有更多更详细的Math属性及方法。