美文网首页
2022-04-27 JavaScript基础学习 - 4

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

作者: 网恋被骗二块二 | 来源:发表于2022-04-28 21:35 被阅读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

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

    相关文章

      网友评论

          本文标题:2022-04-27 JavaScript基础学习 - 4

          本文链接:https://www.haomeiwen.com/subject/bzklyrtx.html