1. 对象
是一种数据类型,一种无序的数据集合
1.1 声明对象
- 属性名可以使用
""
或''
,一般可以省略,除非名称遇到特殊符号,如空格、中横线等
// 声明对象: 方式一
let user1 = {
‘uname’: 'lily',
sayHello: function () {
console.log('hello')
}
}
// 声明对象: 方式二
let user2 = new Object()
1.2 属性增删改查
- 查: 对于多词属性或者包含
-
等属性名,可以用user[‘属性’]
方式查询属性值, 单引号和双引号都可以
// 增加属性
user1.age = 18
// 修改属性
user1.age = 20
// 访问属性
console.log(user1.age) // 20
console.log(user1['age']) // 20
// 删除属性
delete user1.age
1.3 遍历对象属性
// 遍历对象
for(let key in user1) {
console.log(user1[key])
}
1.4 调用和删除方法
// 调用对象的方法
user1.sayHello()
// 删除对象的方法
delete user1.sayHello
1.5 解构赋值
将对象的属性和方法,依次赋值给对应的变量
- 变量名和属性名必须一致才可以,如果不一致需要使用
旧变量名:新变量名
进行转换 - 对象中找不到与变量名一致的属性时,变量值为undefined
- 支持嵌套对象的解构赋值。嵌套对象解构赋值的变量key(如country)不是一个声明的变量
- 对象解构赋值可以和数组解构赋值一起使用
- 函数的形参也可以使用对象的解构赋值
const person = {
uname: 'lily',
country: {
uname: 'china'
}
}
const {uname:personUname, country:{uname:countryName}} = person
console.log(personUname) // lily
console.log(countryName) // china
1.6 内置方法
- Object.keys(obj): 返回由对象所有key构成的数组
- Object.values(obj): 返回由对象所有value构成的数组
- Object.assign(targetObj, orginObj): 将源对象的属性和方法,拷贝到目标对象(目标对象可以有初始化的属性和方法)。注:这是浅拷贝,orginObj的第二层只拷贝地址
2. 内置对象Math
常用方法如下:
- random:生成0-1之间的随机数(包含0不包括1)
- 生成N-M之间的随机整数:
Math.floor(Math.random() * (M - N + 1)) + N
- 生成N-M之间的随机整数:
- ceil:向上取整。例如
Math.ceil(1.1)
- floor:向下取整。例如
Math.floor(1.9)
- round: 四舍五入取整。例如
Math.round(-1.5)
的结果是-1 - max:找最大数。例如
Math.max(1, 2)
- min:找最小数。例如
Math.min(1, 2)
- pow:幂运算
- abs:绝对值。例如
Math.abs(-1)
- PI: 例如
Math.PI
3. 基础数据类型和引用数据类型储存方式
CSS3保留的关键字有int、short、long、char
-
基本数据类型:由操作系统自动分配空间,在栈中储存变量的值。可以存放函数的参数值、局部变量的值等
-
引用数据类型:
- 在栈中储存变量的引用地址,在堆中储存变量的值。栈中引用地址指向堆中储存的变量的值
- 一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收