Float32Array 类型数组代表的是平台字节顺序为32位的浮点数型数组(对应于 C 浮点数据类型) 。 如果需要控制字节顺序, 使用 DataView 替代。其内容初始化为0。一旦建立起来,你可以使用这个对象的方法对其元素进行操作,或者使用标准数组索引语法 (使用方括号)。
语法
new Float32Array(length); new Float32Array(typedArray); new Float32Array(object); new Float32Array(buffer [, byteOffset [, length]]);
更多的语法信息和参数,参见 TypedArray。
属性
Float32Array.BYTES_PER_ELEMENT- 返回元素字节数。
在Float32Array的情况下返回4。 - Float32Array.length
- 长度属性的值为 3。关于其实际长度(元素数量)参见
Float32Array.prototype.length。 Float32Array.name- 返回构造函数名字的字符串值。在
Float32Array类型的情况下为:"Float32Array"。 Float32Array.prototype- TypedArray对象的原型。
方法
Float32Array.from()- 从一个类数组对象或可遍历对象创建一个新的Float32Array。参见
Array.from()。 Float32Array.of()- 用可变数量的参数创建一个新的Float32Array。 参见
Array.of()。
Float32Array 属性
所有的Float32Array对象都继承自 %TypedArray%.prototype。
特性
Float32Array.prototype.constructor- 返回创建这个实例原型的函数。 这是
Float32Array默认的构造函数。 Float32Array.prototype.buffer只读- 返回这个
Float32Array引用的ArrayBuffer。构造时已固定,所以是只读的。 Float32Array.prototype.byteLength只读- 返回从
Float32Array的ArrayBuffer开头开始的长度 (以字节为单位) 。构造时已固定,所以是只读的。 Float32Array.prototype.byteOffset只读- 返回从
Float32Array的ArrayBuffer开头开始的偏移量(以字节为单位) 。构造时已固定,所以是只读的。 Float32Array.prototype.length只读- 返回
Float32Array中的元素个数。构造时已固定,所以是只读的。
方法
Float32Array.prototype.copyWithin()- 从数组复制元素。参见
Array.prototype.copyWithin()。 Float32Array.prototype.entries()返回一个包含数组中每个元素键值对的数组遍历器对象。参见Array.prototype.entries()。Float32Array.prototype.every()- 检测是否所有元素都能通过给定函数的测试。参见
Array.prototype.every()。 Float32Array.prototype.fill()- 用一个静态值填充给定的起始位置。 参见
Array.prototype.fill()。 Float32Array.prototype.filter()- 创建一个新数组,数据为原数组中所有能让给入函数返回true的元素。参见
Array.prototype.filter()。 Float32Array.prototype.find()- 返回满足测试函数的值,如果没有找到,返回undefined。 参见
Array.prototype.find()。 Float32Array.prototype.findIndex()- 返回满足测试函数的值的位置,如果没有找到,返回-1。参见
Array.prototype.findIndex()。 Float32Array.prototype.forEach()- 以每个元素为参数各调用一次函数。参见
Array.prototype.forEach()。 Float32Array.prototype.includes()- 判断是否包含某个元素,
返回true或false。参见Array.prototype.includes()。 Float32Array.prototype.indexOf()- 返回数组中等于给定值的元素的第一个(最小)位置, 没有找到则返回-1。参见
Array.prototype.indexOf()。 Float32Array.prototype.join()- 合并所有数组元素到一个字符串中。 参见
Array.prototype.join()。 Float32Array.prototype.keys()返回一个包含数组中所有索引的数组遍历器。 参见Array.prototype.keys()。Float32Array.prototype.lastIndexOf()- 返回数组中等于给定值的元素的最后(最大)位置, 没有找到则返回-1。参见
Array.prototype.lastIndexOf()。 Float32Array.prototype.map()- 创建一个新的数组,数据由原数组每个元素依次传入给定函数后返回的值组成。参见
Array.prototype.map()。 Float32Array.prototype.move()未实现Float32Array.prototype.copyWithin()以前的一个非标准版本。Float32Array.prototype.reduce()- 传入一个函数作为累加器,从左到右遍历,最终得到一个值。 参见
Array.prototype.reduce()。 Float32Array.prototype.reduceRight()- 传入一个函数作为累加器,从右到左遍历,最终得到一个值。参见
Array.prototype.reduceRight()。 Float32Array.prototype.reverse()- 反转数组元素的顺序 — 第一个变为最后一个, 最后一个变为第一个。参见
Array.prototype.reverse()。 Float32Array.prototype.set()- 从给定的数组存入多个数值。
Float32Array.prototype.slice()- 提取数组的一部分并且返回一个新数组。参见
Array.prototype.slice()。 Float32Array.prototype.some()- 如果数组中至少有一个元素满足测试函数的要求则返回true。参见
Array.prototype.some()。 Float32Array.prototype.sort()- 对数组元素进行排序并返回数组。参见
Array.prototype.sort()。 Float32Array.prototype.subarray()- 从给定的起始位置返回一个新的
Float32Array。 Float32Array.prototype.values()- 返回一个包含所有数组元素的数组遍历器对象。 参见
Array.prototype.values()。 Float32Array.prototype.toLocaleString()- 返回一个代表数组和其元素的本地化格式字符串。参见
Array.prototype.toLocaleString()。 Float32Array.prototype.toString()- 返回一个代表数组和它的元素的字符串。参见
Array.prototype.toString()。 Float32Array.prototype[@@iterator]()- 返回一个新的包含数组元素的数组迭代器对象。
例子
// From a length var float32 = new Float32Array(2); float32[0] = 42; console.log(float32[0]); // 42 console.log(float32.length); // 2 console.log(float32.BYTES_PER_ELEMENT); // 4 // From an array var arr = new Float32Array([21,31]); console.log(arr[1]); // 31 // From another TypedArray var x = new Float32Array([21, 31]); var y = new Float32Array(x); console.log(y[0]); // 21 // From an ArrayBuffer var buffer = new ArrayBuffer(16); var z = new Float32Array(buffer, 0, 4);
规范
| 规范 | 状态 | 注释 |
|---|---|---|
| Typed Array Specification | Obsolete | 被ECMAScript 6取代 |
| ECMAScript 2015 (6th Edition, ECMA-262) TypedArray constructors |
Standard | 在ECMA中初始定义,另外规定需要使用new。 |
| ECMAScript 2017 Draft (ECMA-262) TypedArray constructors |
Draft |
浏览器兼容
| 特性 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| 基础支持 | 7.0 | 4.0 (2) | 10 | 11.6 | 5.1 |
需要new |
? | 44 (44) | ? | ? | ? |
| 特性 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基础支持 | 4.0 | (Yes) | 4.0 (2) | 10 | 11.6 | 4.2 |
需要new |
? | ? | 44.0 (44) | ? | ? | ? |
一致性提示
从ECMAScript 2015 (ES6)开始, Float32Array构造函数需要用一个new操作符来构造。现在直接把Float32Array构造函数当函数调用而不使用new,会抛出一个TypeError。
var dv = Float32Array([1, 2, 3]); // TypeError: calling a builtin Float32Array constructor // 不允许不使用new
var dv = new Float32Array([1, 2, 3]);