【发布时间】:2012-10-30 19:31:43
【问题描述】:
JavaScript 类型数组在字节序方面存在危险。
假设你有这样一个函数:
var encodeFloat32 = (function() {
var arr = new Float32Array( 1 );
var char = new Uint8Array( arr.buffer );
return function( number ) {
arr[0] = number;
return String.fromCharCode( char[0], char[1], char[2], char[3] );
};
}());
如果您要在 Big Endian 系统上运行它,这是一个潜在的危险函数,因为您将 ArrayBuffers 字节提交给“fromCharCode”方法的顺序。
因此,您需要创建某种字节序安全性以使您的代码独立于平台。
在用 JavaScript 编写的应用程序中创建“字节序安全”的最佳做法是什么?有什么解决方法吗?
【问题讨论】:
标签: javascript cross-platform endianness typed-arrays