Atomics.store/load方法(和其他方法?没有深入查看)不支持Float32Array。我读到这是为了与它不支持Float64Array保持一致,以确保兼容性(一些计算机不支持该类型)。除了我认为这很愚蠢之外,这是否意味着我必须将想要使用的每个浮点数转换为无符号整数?这不仅会导致代码难看,而且还会使它变得更慢。例如:
let a = new Float32Array(1); // Want the result here
Atomics.store(a, 0, 0.5); // Oops, can't use Float32Array
let b = new Float32Array(1); // Want the result here
let uint = new Uint32Array(1);
let float = new Float32Array(uint.buffer);
float[0] = 0.5;
Atomics.store(b, 0, uint[0]);