js,JavaScript 类型化数组详解(2024-05-04)

1、JavaScript 类型化数组

在 Javascript 中,类型化数组是二进制数据的类似数组的缓冲区。

不存在名为 TypedArray 的 JavaScript 属性或对象,但属性和方法可以与类型化数组对象一起使用:

const myArr = new Int8Array(10);
// 0,0,0,0,0,0,0,0,0,0

2、类型化数组的对象

类型化数组的对象

对象	            数据类型	                    范围
Int8Array	        有符号整数(字节)	        -128/127
Uint8Array	        无符号整数(八位字节)	    0/255
Uint8ClampedArray	无符号整数(八位字节)	    0/255
Int16Array	        短整数	                    -32768/32767
Uint16Array	        无符号短整数	                0/65535
Int32Array	        有符号长整数	                -231/231-1
Uint32Array	        无符号长整数	                0/232
Float32Array	    浮点 - 7 位有效数字	        1.2x10-38/3.4x1038
Float64Array	    双精度浮点 - 16 位有效数字	5.0x10-324/1.8x10308
BigInt64Array	    有符号大整数	                -263/263-1
BigUint64Array	    无符号大整数	                0/264

说明

类型化数组不是数组。

类型化数组上的 isArray() 返回 false。

类型化数组不支持许多数组方法(如 push 和 pop)。

类型化数组是类似数组的对象,用于在内存中存储二进制数据。

3、Typed Array 方法和属性

BYTES_PER_ELEMENT	计算用于存储一个元素的字节数的属性。
fill()	            用一个值填充所有元素。
find()	            返回满足条件的第一个元素。
name	            返回类型化数组的名称。
of()	            用数组创建类型化数组。
some()	            如果一个元素满足条件,则返回 true。

4、Uint8Array 对比 Uint8ClampedArray

Uint8Array 和 Uint8ClampedArray 之间的区别在于如何添加值。

如果将 Uint8ClampedArray 中的一个元素设置为 0-255 范围之外的值,它将默认为 0 或 255。

类型化数组将只取值的前 8 位。

5、类型化数组的好处

类型化数组提供了一种处理二进制数据的方法,就像在 C 中工作的数组一样有效。

类型化数组是原始内存,因此 JavaScript 可以将它们直接传递给任何函数,而无需将数据转换为另一种表示形式。

类型化数组比普通数组快得多,用于将数据传递给可以使用原始二进制数据的函数(计算机游戏、WebGL、Canvas、文件 API、媒体 API)。

6、浏览器 API 支持类型化数组

Fetch API 实例

fetch(url)
.then(request => request.arrayBuffer())
.then(arrayBuffer =>...);

Canvas 实例

const canvas = document.getElementById('my_canvas');
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const uint8ClampedArray = imageData.data;

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/591531.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#知识|事件集中响应,多个按钮关联同一事件(实例练习)

哈喽,你好,我是雷工! 本节学习窗体Controls集合、控件事件的统一关联及如何优化重复代码。 01 事件集中响应 原理:就是相同的控件,可以关联同一个事件响应方法。 02 示例演示 2.1、示例功能 该示例实现窗体中选择…

光伏光热热泵系统(PVT)介绍

伏光热PVT热泵是一种主动利用太阳辐射能的有效方式,其不仅能够进行光伏发电,还能够利用少量的电能提高热能的品位。太阳能PVT热泵除具有发电和制热的功能外,还可以制冷,其产生的冷能可用于夏季建筑室内温度的调节。 与此同时&…

STM32单片机wifi云平台+温度+烟雾+火焰+短信+蜂鸣器 源程序原理图

目录 1. 整体设计 2. 液晶显示 3. Ds18b20温度传感器 4. Mq2烟雾传感器 5. 火焰传感器传感器 6. 蜂鸣器驱动控制 7. 按键 8. Gsm短信模块 9. Esp8266wifi模块 10、源代码 11、资料内容 资料下载地址:STM32单片机wi…

Adobe-Premiere-CEP 扩展 入门-视频剪辑-去气口插件-Silence Remover

短视频,这两年比较火,不要再问为什么用Premiere,非常难用,为什么不用某影,某些国内软件非常接地气简单,又例如某音资深的视频短编辑就很好用了。。。 Premiere二次开发调试难,不如自己搞个cons…

展开说说:Android Fragment完全解析-卷三

本文章分析了Fragment的管理器FragmentManager、事务FragmentTransaction 、以及完整的声明周期和动态加载Fragment的原理解析。 1、Fragment管理器 FragmentManager 类负责在应用的 fragment 上执行一些操作,如添加、移除或替换操作,以及将操作添加到…

介绍BCD码

BCD码(Binary-Coded Decimal‎),用4位 二进制数 来表示1位 十进制数 中的0~9这10个数码,是一种二进制的数字编码形式,用 二进制编码的十进制 代码。 BCD码这种编码形式利用了四个位元来储存一个十进制的数码&#xff0…

关于莫比乌斯变换属性梳理

文章目录 一、说明二、多视角看莫比乌斯变换2.1 从几何角度2.2 复分析中的莫比乌斯变换2.3 莫比乌斯变换运算组合2.4 莫比乌斯变换的不动点2.5 三个点决定一个莫比乌斯变换2.6 交叉比2.7 莫比乌斯变换的逆变换 三 莫比乌斯变换性质证明3.1 证明1:莫比乌斯变换将圆变…

最新SpringBoot项目地方废物回收机构管理系统

采用技术 最新SpringBoot项目地方废物回收机构管理系统的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringBootMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 页面展示效果 登录页面 后端管理员 管理员首页 员工管理 设…

微星主板安装双系统不能进入Ubuntu的解决办法

在微星主板的台式机上面依次安装了Windows11和Ubuntu22.04。在Ubuntu安装完成后重启,没有出现系统选择界面,直接进入了Windows11。怎么解决?方法如下: (1)正常安装Windows11 (2)安…

基于php+mysql+html简单图书管理系统

博主介绍: 大家好,本人精通Java、Python、Php、C#、C、C编程语言,同时也熟练掌握微信小程序、Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

需求规格说明书编制书(word原件)

1 范围 1.1 系统概述 1.2 文档概述 1.3 术语及缩略语 2 引用文档 3 需求 3.1 要求的状态和方式 3.2 系统能力需求 3.3 系统外部接口需求 3.3.1 管理接口 3.3.2 业务接口 3.4 系统内部接口需求 3.5 系统内部数据需求 3.6 适应性需求 3.7 安全性需求 3.8 保密性需…

# IDEA 复制项目 Module 出现 不同模块下的 Product 类报错

IDEA 复制项目 Module 出现 不同模块下的 Product 类报错 我们 用 IDEA 复制项目 Module 出现 不同模块下的 Product 类报错,发现复制的 module 名称没有改变或者 java 文件夹后面还有原项目 source root 字样,maven 父子项目没有标识等问题。 解决方法…

二叉树四种遍历方法

目录 树基本概念 二叉树二叉树的五种形态特殊二叉树二叉链表创建四种遍历方法代码实现 树 树是一个n个节点的有限集,当n0时称之为空树 基本概念 性质 1. 树的定义是递归的,树的定义中又用到了自身 2. 树的根节点没有前驱,除根结点外&#x…

开了个新店!

大家好,我是麦鸽。 一言难尽,五一之前,把大A里的钱都提出来了,又整了一个新的小店。熟悉我的老读者应该都知道,我主业是做嵌入式的,后面慢慢转了技术管理的路线。平时也搞点副业,餐饮店就是其中…

关于链表带环问题为什么要用快慢指针

判断链表是否带环 题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连…

定制开发AI名片商城AI导购系统:引领营销自动化的新时代

在数字营销日新月异的今天,一个革命性的工具——定制开发AI名片商城AI导购系统,正逐渐崭露头角,成为企业私域运营中的得力助手。它不仅仅是一个营销工具,更是一个拥有强大营销自动化能力和先进算法技术的在线助理,为企…

Ubuntu 域名解析出现暂时性错误

Ubuntu 域名解析出现暂时性错误 问题描述解决方案 问题描述 由于在Ubuntu系统里面经常切换网络导致,系统一直处于有线网络连接但是没网状态,尝试ping网络也无法完成,尝试了很多方法均不能解决 解决方案 点击”虚拟机“ 按照要求设置好即可…

Java | Spring框架 | BeanFactory与ApplicationContext

Spring容器:BeanFactory与ApplicationContext Spring容器是Spring框架的核心,负责实例化、配置和组装Bean。 Spring容器有两种主要类型:BeanFactory和ApplicationContext。 一、BeanFactory 基本功能:BeanFactory是Spring框架…

【数据库原理及应用】期末复习汇总高校期末真题试卷02

试卷 一、填空题 数据库系统是指计算机系统中引入数据库后的系统,一般由数据库、________、应用系统、数据库管理员和用户构成。当数据库的存储结构发生了改变,由数据库管理员对________映象作相应改变,可以使________保持不变,…

牛客热题:两个链表的第一个公共节点

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:两个链表的第一个公共节点题目链…
最新文章