JavaScript DataView getInt32() 方法



JavaScript DataView getInt32() 方法用于从指定的字节偏移量检索 4 字节的数据值,并将其解码为 32 位有符号整数。可以从数据视图边界内的任何偏移量中获取多个字节值。

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

语法

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


 getInt32(byteOffset, littleEndian)

参数

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

  • byteOffset - DataView 中要从中读取数据的位置。
  • littleEndian − 它指示数据是以 little-endian 还是 big-endian 格式存储。

返回值

此方法返回一个从 -2147483648 到 2147483647(含)的整数。

示例 1

下面的示例演示了 JavaScript DataView getInt32() 方法的用法。


<html>
<body>
<script>
	 	const buffer = new ArrayBuffer(32);
	 	const data_view = new DataView(buffer);
	 	const value = 2147483647;
	 	const byteOffset = 0;
	 	document.write("Value: ", value);
	 	document.write("<br>The byte offset: ", byteOffset);
	 	//storing value
	 	data_view.setInt32(byteOffset, value);
	 	document.write("<br>The store value: ", data_view.getInt32(byteOffset));
	 	</script>
</body>
</html>

输出

上述程序将存储的值生成为 -

Value: 2147483647
The byte offset: 0
The store value: 2147483647

示例 2

如果 byteOffset 参数值没有传给该方法,则会自动返回该数据视图 byteOffset 0 处的存储值。


<html>
<body>
<script>
	 	const buffer = new ArrayBuffer(32);
	 	const data_view = new DataView(buffer);
	 	const value = 2443;
	 	const byteOffset = 0;
	 	document.write("Value: ", value);
	 	document.write("<br>The byte offset: ", byteOffset);
	 	//storing value
	 	data_view.setInt32(byteOffset, value);
	 	document.write("<br>The data_view.getInt32() method returns: ", data_view.getInt32());
</script>
</body>
</html>

输出

执行上述程序后,它将返回存储的值为 '2443'。

Value: 2443
The byte offset: 0
The data_view.getInt32() method returns: 2443

示例 3

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


<html>
<body>
<script>
	 	const buffer = new ArrayBuffer(32);
	 	const data_view = new DataView(buffer);
	 	const value = 2443;
	 	const byteOffset = 0;
	 	document.write("Value: ", value);
	 	document.write("<br>The byte offset: ", byteOffset);
	 	//storing value
	 	data_view.setInt32(byteOffset, value);
	 	try {
	 	 	 document.write(data_view.getInt32(-1));
	 	} catch (error) {
	 	 	 document.write("<br>", error);
	 	}
</script>
</body>
</html>

输出

一旦执行了上述程序,它将抛出一个 'RangeError' 异常,即 -

Value: 2443
The byte offset: 0
RangeError: Offset is outside the bounds of the DataView