คู่มืออ้างอิง JavaScript ตัวแปรจำลอง
- หน้าก่อน JS ประจักษ์
- หน้าต่อไป ตัวแปร Window
JavaScript 类型化数组
在 Javascript 中,类型化数组是二进制数据的类似数组的缓冲区。
不存在名为 TypedArray 的 JavaScript 属性或对象,但属性和方法可以与类型化数组对象一起使用:
实例
const myArr = new Int8Array(10);
类型化数组的对象
对象 | 数据类型 | 范围 |
---|---|---|
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 | BigUint64Array ไม่มีสัญลักษณ์ | 0/264 |
คำอธิบาย
แบบจำแนกประเภทไม่ใช่ตัวเลข
การคำนวณของ isArray() บนแบบจำแนกประเภทคืนค่า false
แบบจำแนกประเภทไม่สนับสนุนหลายวิธีการของตัวเลข (เช่น push และ pop)
แบบจำแนกประเภทเป็นวัตถุที่คล้ายตัวเลข ใช้ในการจัดเก็บข้อมูลบีนารี่ในหน่วยความจำ
วิธีและคุณสมบัติของ Typed Array
วิธี/คุณสมบัติ | คำอธิบาย |
---|---|
BYTES_PER_ELEMENT | คำอธิบายของค่าที่ใช้เก็บตัวเลข |
fill() | กระจายค่าเดียวกันทั้งหมด |
find() | คืนองค์ประกอบแรกที่พึงเงื่อนไข |
name | คืนชื่อของแบบจำแนกประเภท |
of() | สร้างแบบจำแนกประเภทด้วยตัวเลข |
some() | ถ้าองค์ประกอบพึงเงื่อนไข ก็จะคืนค่า true |
Uint8Array และ Uint8ClampedArray
ความแตกต่างระหว่าง Uint8Array และ Uint8ClampedArray อยู่ที่วิธีการเพิ่มค่า
ถ้าจะใส่ค่าของ Uint8ClampedArray ที่อยู่นอกขอบเขต 0-255 มันจะเรียกใช้ค่าเริ่มต้น 0 หรือ 255
แบบจำแนกประเภทจะเก็บค่าเพียง 8 บิตแรก
ข้อดีของแบบจำแนกประเภท
แบบจำแนกประเภทให้กำหนดวิธีการจัดการข้อมูลบีนารี่อย่างมีประสิทธิภาพ เหมือนกับการทำงานกับแบบจำแนกประเภทใน C
แบบจำแนกประเภทเป็นหน่วยความจำตรงเดียว ดังนั้น JavaScript สามารถส่งข้อมูลตรงไปยังฟังก์ชันที่ใช้ข้อมูลบีนารี่โดยไม่จำเป็นต้องเปลี่ยนแปลงข้อมูลเป็นรูปแบบอื่น
แบบจำแนกประเภทมีความเร็วสูงกว่าแบบจำแนกประเภททั่วไปมาก ใช้ในการส่งข้อมูลให้กับฟังก์ชันที่สามารถใช้ข้อมูลบีนารี่ (เกมคอมพิวเตอร์, WebGL, Canvas, API ไฟล์, API มีเดีย)
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;
การสนับสนุนบราวเซอร์
typedArray เป็นคุณสมบัติของ ECMAScript6 (ES6)
ทุกบราวเซอร์สมัยใหม่เกี่ยวข้องสนับสนุน ES6 (JavaScript 2015)
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes |
Internet Explorer 11 (และเวอร์ชั่นเก่ากว่า) ไม่สนับสนุน typedArray。
- หน้าก่อน JS ประจักษ์
- หน้าต่อไป ตัวแปร Window