Javascript ArrayBuffer-无法将null值设置为ArrayBuffer

Javascript ArrayBuffer-无法将null值设置为ArrayBuffer,javascript,web-worker,arraybuffer,Javascript,Web Worker,Arraybuffer,结果: 0 预期: null 如何设置空/空数据?我们有办法检查arraybuffer中的空数据吗 例如:我们有一个包含如下数据的csv文件: 0,1,0 非常感谢(我的重点): ArrayBuffer对象用于表示通用的固定长度 原始二进制数据缓冲区 也就是说,ArrayBuffers只保存二进制(数字)值。因此,DataView API只允许您设置浮点值或整数值null不是一个数字。这是JS的一个 您可以在EcmaScript规范中进一步看到这一点,在抽象操作的步骤4中 断言:类型(值)是数字

结果:
0

预期:
null

如何设置空/空数据?我们有办法检查arraybuffer中的空数据吗

例如:我们有一个包含如下数据的csv文件:

0,1,0

非常感谢(我的重点):

ArrayBuffer对象用于表示通用的固定长度 原始二进制数据缓冲区

也就是说,ArrayBuffers只保存二进制(数字)值。因此,DataView API只允许您设置浮点值或整数值<但是,code>null不是一个数字。这是JS的一个

您可以在EcmaScript规范中进一步看到这一点,在抽象操作的步骤4中 断言:类型(值)是数字。“但是,规范没有定义如何处理非数字类型。有人可能会说,在这种情况下应该抛出一个
TypeError
,但我检查的所有实现(Chrome、Safari、Firefox、Node.js)都悄悄地将值转换为零。。。这就是你看到的。如果传递
字符串
日期
正则表达式
布尔值
,或
未定义
,则会得到相同的行为


(如果你传递了一个
BigInt
符号
,你似乎得到了一个TypeError…奇怪。)

ArrayBuffer
基本上表示一个固定大小的内存块。该数组中的各个字节可以是
0
,但其中不可能有
null
值。当我们解析csv数据时,如何设置空值,,,冷却并传输其数据?@TayDong:字节值的数量是固定的。也就是说,总有16个字节的值。i、 e.16个值,每个值介于0和255之间。在这种情况下,“空”应该是什么?当您阅读0时,可以将其解释为“空”,但这意味着您不能再表示数值0。谢谢Joachim Sauer。如果我们将0标记为空,则会造成混乱。如果数据为
0,1,0,cool
,会发生什么情况。这意味着我们可以显示0,null/empty您打算如何将
“cool”
部分写入/编码到只接受数字的数组中?如果你的答案是charCodes,那么你如何区分
cool,stuff
coolstuff
。或者换句话说,如何确定列的边界?一点也不奇怪,实现确实在值上调用了toNumber,因此toNumber(bigininstance)将抛出,而toNumber(null)将返回
0
。顺便说一句,可能需要注意的是,truthy值将因此被转换为
1
// Creating an ArrayBuffer with a size in bytes 
var buffer = new ArrayBuffer(16); 

// Creating views 
var view1 = new DataView(buffer);

// Putting 1 in slot 0 
view1.setInt8(0, null);

console.log(view1.getInt8(0));