當涉及到排序時,JavaScript Typed Arrays會造成危險。使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」方法。
因此,您需要創建某種endian安全性,以使代碼與平臺無關。
在用JavaScript編寫的應用程序中創建「endian安全」的最佳實踐是什麼?有沒有解決方法?
我相信這篇文章是在Typed Arrays抵達JavaScript之前發佈的。它解釋了位移是endian安全的,但我認爲它不適用於Typed Arrays。 – Willem
DataView看起來很有希望,但我不確定您將如何使用它來實現endian安全。 – Willem
我的假設是,如果您總是通過DataView讀取/寫入值,您可以「忽略」平臺的永久性。 (再次這是一個假設,我沒有什麼可以證明它)這篇文章可能會有所幫助http://stackoverflow.com/a/7876265/149636 – lostsource