2022-04-27 JavaScript基础学习 - 4

2022-04-28  本文已影响0人  网恋被骗二块二

第六章 集合引用类型

所有对象都有toString() valueOf() toLocaleString()方法

Object

到目前为止,大多数引用值的示例使用的是Object类型。Object是 ECMAScript 中最常用的类型之一。

创建一个 object,有以下几种方式:

  1. 使用 new 和 Object 构造函数
  2. 字面量赋值 let obj = {}

Array

ECMAScript数组跟其他编程语言的数组有很大区别。跟其他语言中的数组一样,ECMAScript数组也是一组有序的数据,但跟其他语言不同 的是,数组中每个槽位可以存储任意类型的数据。这意味着可以创建一个数组,它的第一个元素是字符串,第二个元素是数值,第三个是对象。ECMAScript数组也是动态大小的,会随着数据添加而自动增长。

创建一个数组,有以下几种方式:

  1. 使用 new 和 Array 构造函数
  2. 字面量赋值 let arr = []
  3. Array.from() 将类数组转为数组
  4. Array.of()将多个参数转为数组

Array.isArray()判断该变量是否是数组
keys()拿取数组索引的迭代器

console.log([1, 2, 3, 4].keys())
// [0, 1, 2, 3]

values()拿取数组元素的迭代器

console.log([1, 2, 3, 4].values())
// [1, 2, 3, 4]

entries()返回键值对的迭代器

console.log([1, 2, 3, 4].entries())
// [0, 1], [1, 2], [2, 3], [3, 4]

Array.fill()填充数组,三个参数,分别是填充值、起始索引、结束索引,其中这三个参数都是可选值,顺序不可替换:

  1. 没有参数,默认以 undefined 填充整个数组
  2. 没有结束参数,默认以起始索引填充至数组尾部
  3. 都有,以起始索引至结束索引范围内填充值

Array.copyWithin()是复制元素内部的参数修改指定索引位置内容,三个参数,分别是插入位置,复制起始位置,复制结束位置,其中这三个参数第一个参数必填:

  1. 1个参数,复制数组所有内容,从指定索引开始赋值
  2. 2个参数,复制从第二个参数开始到数组末尾的内容,从指定索引开始赋值
  3. 3个参数,复制第二个参数到第三个参数之间的内容,从指定索引开始赋值

pop()方法,删除数组最后一个元素,修改数组长度,并且返回被删除的元素

push()方法,从数组尾部插入1个不等的元素,并且返回数组最新的长度

shift()pop(),从删除第一项

unshift()push(),从数组头部插入元素

sort() 两个参数(a,b),如果a-b为负数,升序;如果a-b为正数,降序;如果a-b为0,不变

reverse()逆转数组顺序

concat() 拼接数组,返回拼接后的新数组,默认会将数组参数展平

slice()截取数组

splice()slice()的进阶版,可以实现删除,修改,添加。

indexOf()查询该元素在数组内的下标,没有则返回-1

includes()查询该元素是否存在数组内,没有则返回false

lastIndexOf()indexOf,但是从数组尾部开始查询。

every()对数组每项检查,如果都返回true,则返回true

filter()对数组每项检查,将判断结果为true作为输出项,组成新数组

map()对数组每项进行处理,将处理后的元素作为输出项,组成新数组

forEach()遍历数组,forEach 没有返回项,但可以调用元素组,对原数组内容进行修改

some()对数组每项检查,如果有一个满足条件,则方法终止,且返回true

reduce()会迭代数组的所有项,并在此基础上构建一个最终返回值。

reduceRight()reduce(),但从最后一项向前遍历

定型数组

定型数组的出现是为了解决:

因为JavaScript数组与原生数组之间不匹 配,所以出现了性能问题。图形驱动程序API通常不需要以 JavaScript 默认双精度浮点格式传递给它们的数值,而这恰恰是 JavaScript 数组在内存中的格式。

Float32Array实际上是一种“视图”,可以允许JavaScript运行时访问一块名为 ArrayBuffer 的预分配内存。ArrayBuffer 是所有定型数组及视图引用的基本单位。

第一种允许你读写ArrayBuffer的视图是DataView。这个视图专为文件 I/O和网络I/O设计,其API支持对缓冲数据的高度控制,但相比于其他类型的视图性能也差一些。DataView对缓冲内容没有任何预设,也不能迭代。

DataView

定型数组有着和数组一样的方法

上一篇下一篇

猜你喜欢

热点阅读