JavaScript DataView setUint8() 方法



JavaScript DataView setUint8() 方法在距 DataView 开头的指定字节偏移量处存储一个 8 位无符号整数(一个字节)。

如果指定的 byteOffset 超出 DataView 的边界,该方法将引发 'RangeError' 异常。

语法

以下是 JavaScript DataView setUint8() 方法的语法 -


 setUint8(byteOffset, value)

参数

此方法接受两个名为 'byteOffset' 和 'value' 的参数,如下所述 -

  • byteOffset - 它是 DataView 中将存储字节的位置。
  • value − 需要存储 8 位无符号整数值。

返回值

此方法返回 undefined,因为它只存储 byte 值。

示例 1

以下是 JavaScript DataView setUnit8() 方法的基本示例。


<html>
<body>
<script>
	 	//creating array buffer
	 	const buffer = new ArrayBuffer(8);
	 	const data_view = new DataView(buffer);
	 	const number = 20;
	 	const byteOffset = 0;
	 	document.write("Number value: ", number);
	 	document.write("<br>The byteOffset value: ", byteOffset);
	 	//using the setUnit8() method
	 	data_view.setUint8(byteOffset, number);
	 	document.write("<br>Store value: ", data_view.getUint8());
</script>
</body>
</html>

输出

上面的程序存储数字并将其显示为 -

Number value: 20
The byteOffset value: 0
Store value: 20

示例 2

以下是 JavaScript DataView setUint8() 方法的另一个示例。我们使用此方法将无符号 8 位整数值 50 存储在指定的字节偏移位置 2 处。


<html>
<body>
<script>
	 	//creating array buffer
	 	const buffer = new ArrayBuffer(8);
	 	const data_view = new DataView(buffer);
	 	const number = 50;
	 	const byteOffset = 2;
	 	document.write("Number value: ", number);
	 	document.write("<br>The byteOffset value: ", byteOffset);
	 	//using the setUnit8() method
	 	data_view.setUint8(byteOffset, number);
	 	document.write("<br>Store value: ", data_view.getUint8(2));
</script>
</body>
</html>

输出

执行上述程序后,它会存储数字 50 并将其显示为 -

Number value: 50
The byteOffset value: 2
Store value: 50

示例 3

如果 byteOffset 参数值超出数据视图的边界,它将引发 'RangeError' 异常。


<html>
<body>
<script>
	 	//creating an array buffer
	 	const buffer = new ArrayBuffer(8);
	 	const data_view = new DataView(buffer);
	 	const number = 200;
	 	const byteOffset = 9;
	 	document.write("Number value: ", number);
	 	document.write("<br>The byteOffset: ", byteOffset);
	 	try {
	 	 	 //using the setUnit8() method
	 	 	 data_view.setUint8(9, 200);
	 	 	 document.write(dv.getUint8(0));
	 	} catch (error) {
	 	 	 document.write("<br>", error);
	 	}
</script>
</body>
</html>

输出

执行上述程序后,它会引发 'RangeError' 异常。

Number value: 200
The byteOffset: 9
RangeError: Offset is outside the bounds of the DataView