美文网首页日常刻书
ES6 中的定型数组(二)

ES6 中的定型数组(二)

作者: F_wind | 来源:发表于2021-02-07 15:12 被阅读0次

    《深入理解ES6》阅读随笔

    数值数据类型

    无符号八位整形
    有符号八位整形
    无符号十六位整形
    有符号十六位整形
    无符号三十二位整形
    有符号三十二位整形
    三十二位浮点型
    六十四位浮点型

    数组缓冲区

    在使用定型数组之前,需要为其分配内存空间,这个内存空间就叫数组缓冲区;

    const buff1= new ArrayBuffer(10);
    

    通过视图来操作数组缓冲区

    获取视图信息

    光有内存空间还不够,否则我们还无法对其进行一系列操作;这个时候会用到视图的概念,视图是操作数组缓冲区的接口,对数组缓冲区进行一系列读写操作;

    const buff1= new ArrayBuffer(10);
    // 创建视图
    const view1= new DataView(buff1,2,3);
    

    视图包含数组缓冲区的长度、偏移量以及所属的数组缓冲区;

    读取和写入视图

    在视图中可以任意操作已存在的八类定型数组数值类型,使用 get 加类型进行读取,set 加类型进行写入:

    1. 如果试图写入其他类型数据,视图均会自动将其转化为零然后再写入;
    2. 已写入的八类数值类型可以灵活读取,比如可以将已存在的两位八位整形读取为一位十六位整形;
    const buff1 = new ArrayBuffer(10)
    const view1 = new DataView(buff1, 2, 2)
    console.log(view1.getInt8(0)) // 0
    view1.setInt8(0, 100)
    console.log(view1.getInt8(0)) // 100
    
    定型数组是视图

    定型数组其实就是特殊类型的视图,定型数组构造函数可用于处理八类定型数组类型,下面是三种初始化定型数组的方式:

    1. 使用构造函数创建视图时,通过直接传入构建普图视图的参数来构建定型数组:
    const buff1 = new ArrayBuffer(10)
    const int8List1 = new Int8Array(buff1, 2, 2)
    
    1. 构造函数传入一个数值参数来创建定型数组,该参数代表定型数组的长度:
    const buff1 = new ArrayBuffer(10)
    const int8List1 = new Int8Array(2)
    
    1. 构造函数还可以传入定型数组、迭代器、数组、类数组对象等来创建定型数组:
    const buff1 = new ArrayBuffer(10)
    const int8List1 = new Int8Array([1,2]) // 传入数组
    const int8List2 = new Int8Array(int8List1) // 出入定型数组
    

    相关文章

      网友评论

        本文标题:ES6 中的定型数组(二)

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