JavaScript DataView getInt16() 方法



JavaScript DataView 的getInt16()方法用于从DataView中指定字节偏移量开始检索2字节数据,检索到的数据将被解码为一个16位有符号整数。此方法还可以从数据视图范围内的任何偏移量获取多字节值。

如果我们不向此方法传递byteOffset参数,它将返回0,如果byteOffset参数超出数据视图的范围,它将抛出一个'RangeError'异常。

语法

以下是JavaScript DataView getInt16()方法的语法:

getInt16(byteOffset, littleEndian)

参数

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

  • byteOffset - 从DataView中读取数据的起始位置。
  • littleEndian - 指示数据值是以小端还是大端格式存储。

返回值

此方法返回一个范围在-3276832767(含)之间的整数。

示例 1

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

<html>
<body>
<script>
   const buffer = new ArrayBuffer(16);
   const data_view = new DataView(buffer);
   const value = 32767;
   const byteOffset = 1;
   document.write("Value: ", value);
   document.write("<br>The byte offset: ", byteOffset);
   //storing the data
   data_view.setInt16(byteOffset, value);
   //using the getInt16() method
   document.write("<br>The store value: ",  data_view.getInt16(byteOffset));
</script>
</body>
</html>

输出

上面提到的程序将返回已存储的值。

Value: 32767
The byte offset: 1
The store value: 32767

示例 2

如果我们在此方法中传递byteOffset参数,它将返回0

以下是JavaScript DataView getInt16()方法的另一个示例,用于检索2字节数据值3405,该值由setInt16()方法在指定的字节偏移量0处存储。

<html>
<body>
<script>
   const buffer = new ArrayBuffer(16);
   const data_view = new DataView(buffer);
   const value = 3405;
   const byteOffset = 0;
   document.write("Value: ", value);
   document.write("<br>The byte offset: ", byteOffset);
   //using the getInt16() method
   data_view.getInt16(byteOffset, value);
   document.write("<br>The data_view.getInt16() method: ", data_view.getInt32());
</script>
</body>
</html>

输出

执行上述程序后,它将返回0。

Value: 3405
The byte offset: 0
The data_view.getInt16() method: 0

示例 3

如果byteOffset参数的值超出此数据视图的范围,它将抛出一个'RangeError'异常。

<html>
<body>
<script>
   const buffer = new ArrayBuffer(16);
   const data_view = new DataView(buffer);
   const value = 255;
   const byteOffset = 1;
   document.write("Value: ", value);
   document.write("<br>The byte offset: ", byteOffset);
   try {
      //using the getInt16(-1) method 
      data_view.getInt16(-1);
   } catch (error) {
      document.write("<br>", error);
   }
</script>
</body>
</html>

输出

执行上述程序后,它将抛出一个'RangeError'异常。

Value: 255
The byte offset: 1
RangeError: Offset is outside the bounds of the DataView
广告
© . All rights reserved.