因为此章节主要讲述为数据类型各个相应的方法以及注意事项,因此几乎跳过。
一、Object
object有两种实现方式,一种是通过new来初始化定义;另外一种是通过简洁的字面量来初始化定义的。
1、通过构造函数new
性能较字面量慢,因为这涉及到了Object函数的调用,那么函数调用就需要通过原型链寻找开始是否存在这个函数,找到之后又需要为其变量对象开辟空间,函数执行完毕后,又要销毁其执行环境,使其变量对象解除引用。
2、通过字面量
因为字面量可以立即求值,不需要调用Object构造函数,所以就不需要上述的整个调用执行过程。
code验证
// 注意console.time('firstTest')内部的字符串,相当于计时器话柄,必须成对出现
console.time('firstTest')
for (let i = 0; i < 10000; i++) {
const obj = {}
}
console.timeEnd('firstTest') // firstTest: 0.447998046875ms
// 构造函数new
console.time('secondTest')
for (let i = 0; i < 10000; i++) {
const obj = new Object()
}
console.timeEnd('secondTest') // secondTest: 1.669189453125ms
关于那些数据类型可以字面量定义,如图
二、Array
相当于其他语言中的有序列表,但不同的是其内部可以存储任何类型的值;此外它不会产生越界报错,任何越界的获取都已undefined展示。
1、数组末尾添加或则删除简便方法(不建议使用,建议规范为函数式编程思想,而非命令式编程)
我们可以利用Array的length属性对数组尾部进行添加或者删除操作,比如
const arr = ['chujiu', 'xiaomai', 'xiaoying', 'ali']
// 删除
arr.length = arr.length - 1
console.log(arr[3]) // undefined
// 添加
arr[arr.length] = 'ali'
console.log(arr[3]) // ali