--- title: Uint32Array slug: Web/JavaScript/Reference/Global_Objects/Uint32Array translation_of: Web/JavaScript/Reference/Global_Objects/Uint32Array --- <div>{{JSRef("Global_Objects", "TypedArray", "Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array")}}</div> <div></div> <p><strong><code>Uint32Array</code> </strong>表示一个由基于平台字节序的32位无符号字节组成的数组。如果需要对字节顺序进行控制(译者注:即 littleEndian 或 bigEndian),请使用 {{jsxref("DataView")}} 代替。数组中每个元素的初始值都是<code>0</code>。一旦创建,你可以用对象的方法引用数组里的元素,或者使用标准的数组索引语法(即,使用中括号)。</p> <h2 id="语法">语法</h2> <pre class="syntaxbox">new Uint32Array(); // new in ES2017 new Uint32Array(length); new Uint32Array(typedArray); new Uint32Array(object); new Uint32Array(buffer [, byteOffset [, length]]);</pre> <p>更多的构造器语法和属性请参照 <em><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#Syntax">TypedArray</a>。</em></p> <h2 id="属性">属性</h2> <dl> <dt>{{jsxref("TypedArray.BYTES_PER_ELEMENT", "Uint32Array.BYTES_PER_ELEMENT")}}</dt> <dd>返回一个数值,代表<code>Uint32Array</code>中单个元素的字节大小。<code>Uint32Array</code> 返回 <code>4</code>。</dd> <dt>Uint32Array.length</dt> <dd>固定值(static)属性,值为3。使用 {{jsxref("TypedArray.prototype.length", "Uint32Array.prototype.length")}} 获得数组的真实长度(元素个数)。</dd> <dt>{{jsxref("TypedArray.name", "Uint32Array.name")}}</dt> <dd>返回字符串类型的值,表示构造器的名字。<code>Uint32Array</code> 的返回值是: "Uint32Array"。</dd> <dt>{{jsxref("TypedArray.prototype", "Uint32Array.prototype")}}</dt> <dd><em>TypedArray</em> 对象的原型链。</dd> </dl> <h2 id="方法">方法</h2> <dl> <dt>{{jsxref("TypedArray.from", "Uint32Array.from()")}}</dt> <dd>从类似数组或者可迭代对象创建一个新的 <code>Uint32Array</code> 。请参考 {{jsxref("Array.from()")}}.</dd> <dt>{{jsxref("TypedArray.of", "Uint32Array.of()")}}</dt> <dd>从可变长度的参数创建一个新的 <code>Uint32Array</code> 。请参考 {{jsxref("Array.of()")}}.</dd> </dl> <h2 id="Boolean_instances" name="Boolean_instances"><code>Uint32Array</code> 原型</h2> <p><font face="Open Sans, sans-serif">所有 </font><code>Uint32Array</code> 对象继承自 {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.</p> <h3 id="属性_2">属性</h3> <dl> <dt><code>Uint32Array.prototype.constructor</code></dt> <dd>返回创建实例原型的函数。 默认返回 <code>Uint32Array</code> 的构造器。</dd> <dt>{{jsxref("TypedArray.prototype.buffer", "Uint32Array.prototype.buffer")}} {{readonlyInline}}</dt> <dd>返回 <code>Uint32Array</code>引用的 {{jsxref("ArrayBuffer")}}。 由于构造时已固定,所以是<strong>只读的</strong>。</dd> <dt>{{jsxref("TypedArray.prototype.byteLength", "Uint32Array.prototype.byteLength")}} {{readonlyInline}}</dt> <dd>返回从其 {{jsxref("ArrayBuffer")}} 开始的 <code>Uint32Array</code> 字节长度。由于构造时已固定,所以是<strong>只读的</strong>。</dd> <dt>{{jsxref("TypedArray.prototype.byteOffset", "Uint32Array.prototype.byteOffset")}} {{readonlyInline}}</dt> <dd>返回从其 {{jsxref("ArrayBuffer")}} 的偏移开始的 <code>Uint32Array</code> 字节长度。由于构造时已固定,所以是<strong>只读的</strong>。</dd> <dt>{{jsxref("TypedArray.prototype.length", "Uint32Array.prototype.length")}} {{readonlyInline}}</dt> <dd>返回 <code>Uint32Array</code> 中元素的个数。由于构造时已固定,所以是<strong>只读的</strong>。</dd> </dl> <h3 id="方法_2">方法</h3> <dl> <dt>{{jsxref("TypedArray.copyWithin", "Uint32Array.prototype.copyWithin()")}}</dt> <dd>拷贝(浅拷贝)数组的部分元素到本数组的不同位置(不改变数组的大小)。请参考 {{jsxref("Array.prototype.copyWithin()")}}。</dd> <dt>{{jsxref("TypedArray.entries", "Uint32Array.prototype.entries()")}}</dt> <dd>返回一个 <code>Array Iterator</code> 对象,该对象包含数组中每一对索引的键值对。请参考 {{jsxref("Array.prototype.entries()")}}。</dd> <dt>{{jsxref("TypedArray.every", "Uint32Array.prototype.every()")}}</dt> <dd>测试是否数组中的所有元素都通过给定的测试函数。请参考 {{jsxref("Array.prototype.every()")}}。</dd> <dt>{{jsxref("TypedArray.fill", "Uint32Array.prototype.fill()")}}</dt> <dd>使用静态值填充从起始下标到终止下标的数组元素。请参考 {{jsxref("Array.prototype.fill()")}}。</dd> <dt>{{jsxref("TypedArray.filter", "Uint32Array.prototype.filter()")}}</dt> <dd>创造一个新数组,含有原数组中可通过给定的过滤器函数的所有元素。请参考 {{jsxref("Array.prototype.filter()")}}。</dd> <dt>{{jsxref("TypedArray.find", "Uint32Array.prototype.find()")}}</dt> <dd>如果数组中的元素满足提供的测试函数,返回找到的值,如果没有找到则返回 <code>undefined</code>。请参考 {{jsxref("Array.prototype.find()")}}。</dd> <dt>{{jsxref("TypedArray.findIndex", "Uint32Array.prototype.findIndex()")}}</dt> <dd>如果数组中的元素满足提供的测试函数,返回找到的下标,如果没有找到则返回 -1。请参考 {{jsxref("Array.prototype.findIndex()")}}。</dd> <dt>{{jsxref("TypedArray.forEach", "Uint32Array.prototype.forEach()")}}</dt> <dd>对数组内的每个元素调用一个函数。请参考 {{jsxref("Array.prototype.forEach()")}}。</dd> <dt>{{jsxref("TypedArray.includes", "Uint32Array.prototype.includes()")}}</dt> <dd>判断该数组是否包含特定值,如果包含返回 <code>true</code>,否则返回<code>false</code>。请参考 {{jsxref("Array.prototype.includes()")}}。</dd> <dt>{{jsxref("TypedArray.indexOf", "Uint32Array.prototype.indexOf()")}}</dt> <dd>返回数组中等于特定值的第一个元素(下标最小)的下标,如果没有找到则返回 -1。请参考 {{jsxref("Array.prototype.indexOf()")}}。</dd> <dt>{{jsxref("TypedArray.join", "Uint32Array.prototype.join()")}}</dt> <dd>将数组内的元素拼接成一个字符串。请参考 {{jsxref("Array.prototype.join()")}}。</dd> <dt>{{jsxref("TypedArray.keys", "Uint32Array.prototype.keys()")}}</dt> <dd>返回一个 <code>Array Iterator</code> 对象,该对象包含数组中所有索引(key)。请参考 {{jsxref("Array.prototype.keys()")}}。</dd> <dt>{{jsxref("TypedArray.lastIndexOf", "Uint32Array.prototype.lastIndexOf()")}}</dt> <dd>返回数组中等于特定值的最后一个元素(下标最大)的下标,如果没有找到则返回 -1。请参考 {{jsxref("Array.prototype.lastIndexOf()")}}。</dd> <dt>{{jsxref("TypedArray.map", "Uint32Array.prototype.map()")}}</dt> <dd>用该数组的每个元素调用给定函数的结果创建新数组。请参考 {{jsxref("Array.prototype.map()")}}。</dd> <dt>{{jsxref("TypedArray.reduce", "Uint32Array.prototype.reduce()")}}</dt> <dd>对累加器和数组的每个值应用函数(从左到右),使其归约为单一的值。请参考 {{jsxref("Array.prototype.reduce()")}}。</dd> <dt>{{jsxref("TypedArray.reduceRight", "Uint32Array.prototype.reduceRight()")}}</dt> <dd>对累加器和数组的每个值应用函数(从右到左),使其归约为单一的值。请参考 {{jsxref("Array.prototype.reduceRight()")}}。</dd> <dt>{{jsxref("TypedArray.reverse", "Uint32Array.prototype.reverse()")}}</dt> <dd>翻转数组中的元素顺序——首尾颠倒。请参考 {{jsxref("Array.prototype.reverse()")}}。</dd> <dt>{{jsxref("TypedArray.set", "Uint32Array.prototype.set()")}}</dt> <dd>从一个给定的数组中读取多个数据并存储至 typed array。</dd> <dt>{{jsxref("TypedArray.slice", "Uint32Array.prototype.slice()")}}</dt> <dd>提取数组的某个部分并返回新的数组。请参考 {{jsxref("Array.prototype.slice()")}}。</dd> <dt>{{jsxref("TypedArray.some", "Uint32Array.prototype.some()")}}</dt> <dd>测试是否数组中有(至少一个)元素可通过给定的测试函数。请参考 {{jsxref("Array.prototype.some()")}}。</dd> <dt>{{jsxref("TypedArray.sort", "Uint32Array.prototype.sort()")}}</dt> <dd>就地排序数组中的元素,并返回该数组。请参考 {{jsxref("Array.prototype.sort()")}}。</dd> <dt>{{jsxref("TypedArray.subarray", "Uint32Array.prototype.subarray()")}}</dt> <dd>根据给定的起始和结束元素下标,返回一个新的 <code>Uint32Array</code> 子数组。</dd> <dt>{{jsxref("TypedArray.values", "Uint32Array.prototype.values()")}}</dt> <dd>返回新的 <code>Array Iterator</code> 对象,其含有数组中每个索引的值。请参考 {{jsxref("Array.prototype.values()")}}。</dd> <dt>{{jsxref("TypedArray.toLocaleString", "Uint32Array.prototype.toLocaleString()")}}</dt> <dd>返回表示数组及其元素的本地化字符串。请参考 {{jsxref("Array.prototype.toLocaleString()")}}。</dd> <dt>{{jsxref("TypedArray.toString", "Uint32Array.prototype.toString()")}}</dt> <dd>返回表示数组及其元素的字符串。请参考 {{jsxref("Array.prototype.toString()")}}。</dd> <dt>{{jsxref("TypedArray.@@iterator", "Uint32Array.prototype[@@iterator]()")}}</dt> <dd>返回新的 <code>Array Iterator</code> 对象,其含有数组中每个索引的值。</dd> </dl> <h2 id="示例">示例</h2> <p>用不同的方法创建 <code>Uint32Array</code>:</p> <pre class="brush: js">// 给定长度 var uint32 = new Uint32Array(2); uint32[0] = 42; console.log(uint32[0]); // 42 console.log(uint32.length); // 2 console.log(uint32.BYTES_PER_ELEMENT); // 4 // 给定数组 var arr = new Uint32Array([21, 31]); console.log(arr[1]); // 31 // 给定 TypedArray var x = new Uint32Array([21, 31]); var y = new Uint32Array(x); console.log(y[0]); // 21 // 给定 ArrayBuffer var buffer = new ArrayBuffer(16); var z = new Uint32Array(buffer, 0, 4); // 给定可迭代对象 var iterable = function*(){ yield* [1, 2, 3]; }(); var uint32 = new Uint32Array(iterable); // Uint32Array[1, 2, 3]</pre> <h2 id="规范">规范</h2> <table class="standard-table"> <tbody> <tr> <th scope="col">Specification</th> </tr> <tr> <td>{{SpecName('ESDraft', '#table-49', 'TypedArray constructors')}}</td> </tr> </tbody> </table> <h2 id="浏览器兼容性">浏览器兼容性</h2> <div class="hidden"> <p>The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> </div> <p>{{Compat("javascript.builtins.Uint32Array")}}</p> <h2 id="相关链接">相关链接</h2> <ul> <li><a href="/en-US/docs/Web/JavaScript/Typed_arrays" title="en/JavaScript typed arrays">JavaScript typed arrays</a></li> <li>{{jsxref("ArrayBuffer")}}</li> <li>{{jsxref("DataView")}}</li> </ul>