第六章 集合引用类型
1.object类型(大多数引用值是object类型)
两种创建实例的方法:
1.new操作符和object构造函数
let person = new Object()
2.对象字面量 (更倾向于使用这种方法,看起来更有封装所有相关数据的感觉)
let person = {}
属性:一般用点语法来存取的(person.name),但是也可以用中括号来存取(person[name])
但是属性名中含有可能导致语法错误的字符,或者包含关键字/保留字时,只能使用中括号语法
2.Array类型(数组中每个槽位可以存储任意类型的数据)
创建数组的方法:
1.new操作符和Array构造函数
let colors = new Array()
2.数组字面量
let colors = []
3.Array.from() 用于将类数组结构转化为数组实例,还可以对数组执行浅复制
//类数组转化为数组
console.log(Array.from("Matt")) //["M","a","t","t"]
//对数组进行浅复制
const a1 = [1,2,3,4];
const a2 = Array.from(a1);
4.Array.of() 可以把一组参数转化为数组,一种异常笨拙的将arguments对象转化为数组的写法
console.log(Array.of(1,2,3,4)); //[1,2,3,4]
数组空位:可以使用一串逗号来创建空位
const options = [,,,,,]
但是在实践中要避免使用数组空位,如果确实需要空位,可以用undefined来代替空位
【补充】instanceof操作符和typeof操作符的区别:
1.typeof用于判断数据类型,返回值为6个字符串,分别为string、Boolean、number、function、object、undefined。
console.log(typeof (123));//typeof(123)返回"number"
2.instanceof判断该对象是谁的实例
console.log(value instanceof Array) //如果value是数组就返回true,反之为false
检测数组:1.instanceof操作符 2.Array.isArray()方法
迭代器方法:Array的原型暴露了3个用于检索数组内容的方法,key() , values() , entries()
1.key() 返回数组索引的迭代器
2.values() 返回数组元素的迭代器
3.entries() 返回索引/键值对的迭代器
const a = ['foo','bar','baz','qux'];
const aKeys = Array.from(a.keys());
console.log(aKeys); //[0,1,2,3]
const aValues = Array.from(a.values);
console.log(aValue); //['foo','bar','baz','qux']
const aEntries = Array.from(a.entries());
console.log(aEntries); //[[0,'foo'],[1,'bar'],[2,'baz'],[3,'quz']]
复制或填充方法:
方法:fill(插入值,填充开始索引值,填充结束索引值) 【都是左闭右开区间的】
fill()静默忽略超出数组边界,零长度及方向相反的索引范围
方法2:copyWithin(复制后插入的位置的索引值,复制开始位置的索引值,复制结束位置的索引值)
copyWithin()静默忽略超出数组边界,零长度及方向相反的索引范围
栈方法
栈是后进先出的结构,也就是最近添加的项先被删除
push()方法接受任意数量的参数,并将他们添加到数组末尾,返回数组的最新长度
pop()方法则用于删除数组的最后一项,同时减少数组的length值,返回被删除的项
队列方法
队列在列表末尾添加数据,但从列表开头获取数据
shift() 它会删除数组的第一项并返回它,然后数组长度减1
unshift() 在数组开头添加任意多个值,然后返回新的长度
(明天再补一点)
网友评论