如何在Javascript中声明字节数组

9

我正在进行服务器端JavaScript编程,需要一个特定大小的字节类型数组。 我尝试过:

var buf = [1024]; (guives me Cannot convert org.mozilla.javascript.NativeArray@1e565bd to byte[] error)
var buf = byte[1024]; (wrong synthax)

什么是语法?

6
JavaScript 中没有“byte”类型。然而,在非常新的 JavaScript 版本中有“typed arrays”,这些数组被新版浏览器和 V8 引擎支持。你需要的是一个“Int8Array”或者“Uint8Array”。 - Pointy
@Pointy 我只需要声明:var buf = new Int8Array() 吗? - Gab
@Gab http://www.khronos.org/registry/typedarray/specs/latest/ - ephemient
1
类型化数组非常奇怪;它们与普通的JavaScript数组有些不同。 - Pointy
@ephemient 我使用的 JavaScript 版本不够新,无法使用 khronos.org/registry/typedarray/specs/latest 中描述的任何内容。 - Gab
1个回答

6

这取决于您使用的服务器端JavaScript包。不同的包实现了不同风味的JavaScript和不同版本的ECMAScript。

在NodeJS v0.6.x中,您可以访问类型化数组。创建其中一个数组相当简单。

// creating an array of bytes, with 1024 elements
var bytes = new Uint8Array(1024);

还有其他类型化数组可用,可以处理16位和32位整数。

// creating an array of 16 bit integers, with 128 elements
var array_16bit = new Uint16Array(128);

// creating an array of 32 bit integers, with 16 elements
var array_32bit = new Uint32Array(16);

使用类型化数组时,需要注意以下几点。类型化数组不继承标准数组原型,并且这些数组具有不可变的长度。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接