Skip to content

Commit

Permalink
minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
yin1999 committed Dec 1, 2024
1 parent 86e84ee commit a3d473b
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 75 deletions.
Original file line number Diff line number Diff line change
@@ -1,46 +1,47 @@
---
title: DataView.prototype.getFloat16()
slug: Web/JavaScript/Reference/Global_Objects/DataView/getFloat16
l10n:
sourceCommit: fb442649a7e91a177a582a3e9c6e1a95a9e8dda5
---

{{JSRef}}

**`getFloat16()`**方法从相对于{{jsxref("DataView")}} 的起始位置偏移 n 个字节处获取一个 16-bit 浮点数 (半精度浮点数,2 个字节).
{{jsxref("DataView")}} 实例的 **`getFloat16()`** 方法从相对于当前 `DataView` 的起始位置偏移指定个字节处读取 2 个字节,并将其解释为 16 位浮点数。如果没有对齐约束;则可以从边界内的任意偏移位置处获取多字节值。

{{EmbedInteractiveExample("pages/js/dataview-getfloat16.html")}}

## 语法

```plain
dataview.getFloat16(byteOffset [, littleEndian])
```js-nolint
getFloat16(byteOffset)
getFloat16(byteOffset, littleEndian)
```

### 参数

- byteOffset
- : 偏移量,单位为字节,为从视图的开始位置到读取数值的位置的偏移
- littleEndian
- : {{optional_inline}} 表示这个 16 位浮点数是否以 {{Glossary("Endianness", "little- or big-endian")}} 格式存储,如果设置为 false 或者不指定,将用 big-endian 格式读取数值
- `byteOffset`
- : 从视图的开始位置到读取数值的位置的偏移量,以字节为单位
- `littleEndian` {{optional_inline}}
- : 指示数据是否以[小端或大端序](/zh-CN/docs/Glossary/Endianness)格式存储。如果为 `false``undefined`,则以大端序读取数值

### 返回
### 返回值

一个带符号的 16 位浮点数
`-65504``65504` 之间的浮点数

### 抛出错误
### 异常

- {{jsxref("RangeError")}}
- : 如果 byteOffset 设置导致读数值时超出了视图的末尾就会抛出错误。

## 说明

没有对齐约束; 多字节值可以从任何偏移处获取。
- : 如果设置的 `byteOffset` 会导致读取超出视图的末尾,则抛出此异常。

## 示例

### 使用 getFloat16()

```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.getFloat16(1); // 0
const { buffer } = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
const dataview = new DataView(buffer);
console.log(dataview.getFloat16(1)); // 0.00001537799835205078
```

## 规范
Expand All @@ -53,5 +54,8 @@ dataview.getFloat16(1); // 0

## 参见

- [`core-js``DataView.prototype.getFloat16` 的 polyfill](https://github.com/zloirock/core-js#float16-methods)
- [JavaScript 类型化数组](/zh-CN/docs/Web/JavaScript/Guide/Typed_arrays)指南
- {{jsxref("DataView")}}
- {{jsxref("ArrayBuffer")}}
- {{jsxref("Float16Array")}}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ slug: Web/JavaScript/Reference/Global_Objects/DataView

{{JSRef}}

**`DataView`** 视图是一个可以从二进制 {{jsxref("ArrayBuffer")}} 对象中读写多种数值类型的底层接口,使用它时,不用考虑不同平台的[字节序(endianness)](/zh-CN/docs/Glossary/Endianness)问题。
**`DataView`** 视图是一个可以从二进制 {{jsxref("ArrayBuffer")}} 对象中读写多种数值类型的底层接口,使用它时,不用考虑不同平台的[字节序](/zh-CN/docs/Glossary/Endianness)问题。

## 描述

Expand Down Expand Up @@ -83,50 +83,50 @@ function getUint64BigInt(dataview, byteOffset, littleEndian) {

## 实例方法

- {{jsxref("DataView.prototype.getInt8()")}}
- : 从该 `DataView` 的指定字节偏移处读取 1 个字节,并将其解释为 8 位有符号整数。
- {{jsxref("DataView.prototype.getUint8()")}}
- : 从该 `DataView` 的指定字节偏移处读取 1 个字节,并将其解释为 8 位无符号整数。
- {{jsxref("DataView.prototype.getInt16()")}}
- : 从该 `DataView` 的指定字节偏移处读取 2 个字节,并将其解释为 16 位有符号整数。
- {{jsxref("DataView.prototype.getUint16()")}}
- : 从该 `DataView` 的指定字节偏移处读取 2 个字节,并将其解释为 16 位无符号整数。
- {{jsxref("DataView.prototype.getInt32()")}}
- : 从该 `DataView` 的指定字节偏移处读取 4 个字节,并将其解释为 32 位有符号整数。
- {{jsxref("DataView.prototype.getUint32()")}}
- : 从该 `DataView` 的指定字节偏移处读取 4 个字节,并将其解释为 32 位无符号整数。
- {{jsxref("DataView.prototype.getBigInt64()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 8 个字节,并将其解释为 64 位有符号整数。
- {{jsxref("DataView.prototype.getBigUint64()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 8 个字节,并将其解释为 64 位无符号整数。
- {{jsxref("DataView.prototype.getFloat16()")}}
- : 从该 `DataView` 的指定字节偏移处读取 2 个字节,并将其解释为 16 位浮点数。
- : 从当前 `DataView` 的指定字节偏移处读取 2 个字节,并将其解释为 16 位浮点数。
- {{jsxref("DataView.prototype.getFloat32()")}}
- : 从该 `DataView` 的指定字节偏移处读取 4 个字节,并将其解释为 32 位浮点数。
- : 从当前 `DataView` 的指定字节偏移处读取 4 个字节,并将其解释为 32 位浮点数。
- {{jsxref("DataView.prototype.getFloat64()")}}
- : 从该 `DataView` 的指定字节偏移处读取 8 个字节,并将其解释为 64 位浮点数。
- {{jsxref("DataView.prototype.getBigInt64()")}}
- : 从该 `DataView` 的指定字节偏移处读取 8 个字节,并将其解释为 64 位有符号整数。
- {{jsxref("DataView.prototype.getBigUint64()")}}
- : 从该 `DataView` 的指定字节偏移处读取 8 个字节,并将其解释为 64 位无符号整数
- {{jsxref("DataView.prototype.setInt8()")}}
- : 指定一个数字,并将其作为 8 位有符号整数存储在该 `DataView` 的指定字节偏移处的 1 个字节中
- {{jsxref("DataView.prototype.setUint8()")}}
- : 指定一个数字,并将其作为 8 位无符号整数存储在该 `DataView` 的指定字节偏移处的 1 个字节中
- {{jsxref("DataView.prototype.setInt16()")}}
- : 指定一个数字,并将其作为 16 位有符号整数存储在该 `DataView` 的指定字节偏移处的 2 个字节中
- {{jsxref("DataView.prototype.setUint16()")}}
- : 指定一个数字,并将其作为 16 位无符号整数存储在该 `DataView` 的指定字节偏移处的 2 个字节中
- {{jsxref("DataView.prototype.setInt32()")}}
- : 指定一个数字,并将其作为 32 位有符号整数存储在该 `DataView` 的指定字节偏移处的 4 个字节中。
- {{jsxref("DataView.prototype.setUint32()")}}
- : 指定一个数字,并将其作为 32 位无符号整数存储在该 `DataView` 的指定字节偏移处的 4 个字节中。
- : 从当前 `DataView` 的指定字节偏移处读取 8 个字节,并将其解释为 64 位浮点数。
- {{jsxref("DataView.prototype.getInt16()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 2 个字节,并将其解释为 16 位有符号整数。
- {{jsxref("DataView.prototype.getInt32()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 4 个字节,并将其解释为 32 位有符号整数
- {{jsxref("DataView.prototype.getInt8()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 1 个字节,并将其解释为 8 位有符号整数
- {{jsxref("DataView.prototype.getUint16()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 2 个字节,并将其解释为 16 位无符号整数
- {{jsxref("DataView.prototype.getUint32()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 4 个字节,并将其解释为 32 位无符号整数
- {{jsxref("DataView.prototype.getUint8()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 1 个字节,并将其解释为 8 位无符号整数
- {{jsxref("DataView.prototype.setBigInt64()")}}
- : 指定一个数字,并将其作为 64 位有符号整数存储在当前 `DataView` 的指定字节偏移处的 8 个字节中。
- {{jsxref("DataView.prototype.setBigUint64()")}}
- : 指定一个数字,并将其作为 64 位无符号整数存储在当前 `DataView` 的指定字节偏移处的 8 个字节中。
- {{jsxref("DataView.prototype.setFloat16()")}}
- : 指定一个数字,并将其作为 16 位浮点数存储在该 `DataView` 的指定字节偏移处的 2 个字节中。
- : 指定一个数字,并将其作为 16 位浮点数存储在当前 `DataView` 的指定字节偏移处的 2 个字节中。
- {{jsxref("DataView.prototype.setFloat32()")}}
- : 指定一个数字,并将其作为 32 位浮点数存储在该 `DataView` 的指定字节偏移处的 4 个字节中。
- : 指定一个数字,并将其作为 32 位浮点数存储在当前 `DataView` 的指定字节偏移处的 4 个字节中。
- {{jsxref("DataView.prototype.setFloat64()")}}
- : 指定一个数字,并将其作为 64 位浮点数存储在该 `DataView` 的指定字节偏移处的 8 个字节中。
- {{jsxref("DataView.prototype.setBigInt64()")}}
- : 指定一个数字,并将其作为 64 位有符号整数存储在该 `DataView` 的指定字节偏移处的 8 个字节中。
- {{jsxref("DataView.prototype.setBigUint64()")}}
- : 指定一个数字,并将其作为 64 位无符号整数存储在该 `DataView` 的指定字节偏移处的 8 个字节中。
- : 指定一个数字,并将其作为 64 位浮点数存储在当前 `DataView` 的指定字节偏移处的 8 个字节中。
- {{jsxref("DataView.prototype.setInt16()")}}
- : 指定一个数字,并将其作为 16 位有符号整数存储在当前 `DataView` 的指定字节偏移处的 2 个字节中。
- {{jsxref("DataView.prototype.setInt32()")}}
- : 指定一个数字,并将其作为 32 位有符号整数存储在当前 `DataView` 的指定字节偏移处的 4 个字节中。
- {{jsxref("DataView.prototype.setInt8()")}}
- : 指定一个数字,并将其作为 8 位有符号整数存储在当前 `DataView` 的指定字节偏移处的 1 个字节中。
- {{jsxref("DataView.prototype.setUint16()")}}
- : 指定一个数字,并将其作为 16 位无符号整数存储在当前 `DataView` 的指定字节偏移处的 2 个字节中。
- {{jsxref("DataView.prototype.setUint32()")}}
- : 指定一个数字,并将其作为 32 位无符号整数存储在当前 `DataView` 的指定字节偏移处的 4 个字节中。
- {{jsxref("DataView.prototype.setUint8()")}}
- : 指定一个数字,并将其作为 8 位无符号整数存储在当前 `DataView` 的指定字节偏移处的 1 个字节中。

## 示例

Expand Down
Original file line number Diff line number Diff line change
@@ -1,45 +1,50 @@
---
title: DataView.prototype.setFloat16()
slug: Web/JavaScript/Reference/Global_Objects/DataView/setFloat16
l10n:
sourceCommit: fb442649a7e91a177a582a3e9c6e1a95a9e8dda5
---

{{JSRef}}

**`setFloat16()`** [`DataView`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/DataView)起始位置以 byte 为计数的指定偏移量 (byteOffset) 处储存一个 16-bit 数 (浮点型)
{{jsxref("DataView")}} 实例的 **`setFloat16()`** 接受一个数字,并将其以 16 位浮点数的形式存储在从当前 `DataView` 的指定偏移位置开始处的 2 字节中。如果没有对齐约束;则可以在边界内的任意偏移位置处存储多字节值

{{EmbedInteractiveExample("pages/js/dataview-setfloat16.html")}}

## 语法

```plain
dataview.setFloat16(byteOffset, value [, littleEndian])
```js-nolint
setFloat16(byteOffset, value)
setFloat16(byteOffset, value, littleEndian)
```

### 参数

- byteOffset
- : 偏移量,从头开始计算,单位为字节
- value
- : 设置的数值
- littleEndian
- : {{optional_inline}} 表示这个 16 位浮点数是否以 {{Glossary("Endianness", "little- or big-endian")}} 格式存储,如果设置为 false 或者不指定,将用 big-endian 格式写入数值
- `byteOffset`
- : 从视图的开始位置到存储数据的位置的偏移量,以字节为单位
- `value`
- : 要设置的值。有关数据如何编码为字节序的详细信息,请参见[值编码与标准化](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#值编码与标准化)
- `littleEndian` {{optional_inline}}
- : 指示数据是否以[小端或大端序](/zh-CN/docs/Glossary/Endianness)格式存储。如果为 `false``undefined`,则以大端序写入数值

### 返回
### 返回值

{{jsxref("undefined")}}.
{{jsxref("undefined")}}

### 抛出错误
### 异常

- {{jsxref("RangeError")}}
- : 如果 byteOffset 超出了视图能储存的值,就会抛出错误
- : 如果设置的 `byteOffset` 会导致存储到视图的末尾之外,则抛出此异常

## 示例

### 使用 setFloat16()

```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setFloat16(1, 3);
dataview.getFloat16(1); // 3
const buffer = new ArrayBuffer(10);
const dataview = new DataView(buffer);
dataview.setFloat16(0, 3);
dataview.getFloat16(1); // 0
```

## 规范
Expand All @@ -50,7 +55,10 @@ dataview.getFloat16(1); // 3

{{Compat}}

## 相关内容
## 参见

- [`core-js``DataView.prototype.setFloat16` 的 polyfill](https://github.com/zloirock/core-js#float16-methods)
- [JavaScript 类型化数组](/zh-CN/docs/Web/JavaScript/Guide/Typed_arrays)指南
- {{jsxref("DataView")}}
- {{jsxref("ArrayBuffer")}}
- {{jsxref("Float16Array")}}

0 comments on commit a3d473b

Please sign in to comment.