Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zh-cn: fix the description for DataView interface and add some new docs #24592

Merged
merged 5 commits into from
Dec 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title: DataView.prototype.getFloat16()
slug: Web/JavaScript/Reference/Global_Objects/DataView/getFloat16
l10n:
sourceCommit: fb442649a7e91a177a582a3e9c6e1a95a9e8dda5
---

{{JSRef}}

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

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

## 语法

```js-nolint
getFloat16(byteOffset)
getFloat16(byteOffset, littleEndian)
```

### 参数

- `byteOffset`
- : 从视图的开始位置到读取数值的位置的偏移量,以字节为单位。
- `littleEndian` {{optional_inline}}
- : 指示数据是否以[小端或大端序](/zh-CN/docs/Glossary/Endianness)格式存储。如果为 `false` 或 `undefined`,则以大端序读取数值。

### 返回值

从 `-65504` 到 `65504` 之间的浮点数。

### 异常

- {{jsxref("RangeError")}}
- : 如果设置的 `byteOffset` 会导致读取超出视图的末尾,则抛出此异常。

## 示例

### 使用 getFloat16()

```js
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
```

## 规范

{{Specifications}}

## 浏览器兼容性

{{Compat}}

## 参见

- [`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,46 +83,50 @@ function getUint64BigInt(dataview, byteOffset, littleEndian) {

## 实例方法

- {{jsxref("DataView.prototype.getInt8()")}}
- : 从视图开始的指定字节偏移处获取一个带符号 8 位整数(byte)。
- {{jsxref("DataView.prototype.getUint8()")}}
- : 从视图开始的指定字节偏移处获取一个无符号 8 位整数(unsigned byte)。
- {{jsxref("DataView.prototype.getBigInt64()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 8 个字节,并将其解释为 64 位有符号整数。
- {{jsxref("DataView.prototype.getBigUint64()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 8 个字节,并将其解释为 64 位无符号整数。
- {{jsxref("DataView.prototype.getFloat16()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 2 个字节,并将其解释为 16 位浮点数。
- {{jsxref("DataView.prototype.getFloat32()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 4 个字节,并将其解释为 32 位浮点数。
- {{jsxref("DataView.prototype.getFloat64()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 8 个字节,并将其解释为 64 位浮点数。
- {{jsxref("DataView.prototype.getInt16()")}}
- : 从视图开始的指定字节偏移处获取一个带符号 16 位整数(short)。
- {{jsxref("DataView.prototype.getUint16()")}}
- : 从视图开始的指定字节偏移处获取一个无符号 16 位整数(unsigned short)。
- : 从当前 `DataView` 的指定字节偏移处读取 2 个字节,并将其解释为 16 位有符号整数。
- {{jsxref("DataView.prototype.getInt32()")}}
- : 从视图开始的指定字节偏移处获取一个带符号 32 位整数(long)。
- : 从当前 `DataView` 的指定字节偏移处读取 4 个字节,并将其解释为 32 位有符号整数。
- {{jsxref("DataView.prototype.getInt8()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 1 个字节,并将其解释为 8 位有符号整数。
- {{jsxref("DataView.prototype.getUint16()")}}
- : 从当前 `DataView` 的指定字节偏移处读取 2 个字节,并将其解释为 16 位无符号整数。
- {{jsxref("DataView.prototype.getUint32()")}}
- : 从视图开始的指定字节偏移处获取一个无符号 32 位整数(unsigned long)
- {{jsxref("DataView.prototype.getFloat32()")}}
- : 从视图开始的指定字节偏移处获取一个带符号 32 位浮点数(float)
- {{jsxref("DataView.prototype.getFloat64()")}}
- : 从视图开始的指定字节偏移处获取一个带符号 64 位浮点数(double)
- {{jsxref("DataView.prototype.getBigInt64()")}}
- : 从视图开始的指定字节偏移处获取一个带符号 64 位整数(long long)
- {{jsxref("DataView.prototype.getBigUint64()")}}
- : 从视图开始的指定字节偏移处获取一个无符号 64 位整数(unsigned long long)
- {{jsxref("DataView.prototype.setInt8()")}}
- : 在视图开始的指定字节偏移处存储一个带符号 8 位整数(byte)
- {{jsxref("DataView.prototype.setUint8()")}}
- : 在视图开始的指定字节偏移处存储一个无符号 8 位整数(unsigned byte)
- : 从当前 `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 个字节中
- {{jsxref("DataView.prototype.setFloat32()")}}
- : 指定一个数字,并将其作为 32 位浮点数存储在当前 `DataView` 的指定字节偏移处的 4 个字节中
- {{jsxref("DataView.prototype.setFloat64()")}}
- : 指定一个数字,并将其作为 64 位浮点数存储在当前 `DataView` 的指定字节偏移处的 8 个字节中
- {{jsxref("DataView.prototype.setInt16()")}}
- : 在视图开始的指定字节偏移处存储一个带符号 16 位整数(short)。
- {{jsxref("DataView.prototype.setUint16()")}}
- : 在视图开始的指定字节偏移处存储一个无符号 16 位整数(unsigned short)。
- : 指定一个数字,并将其作为 16 位有符号整数存储在当前 `DataView` 的指定字节偏移处的 2 个字节中。
- {{jsxref("DataView.prototype.setInt32()")}}
- : 在视图开始的指定字节偏移处存储一个带符号 32 位整数(long)。
- : 指定一个数字,并将其作为 32 位有符号整数存储在当前 `DataView` 的指定字节偏移处的 4 个字节中。
- {{jsxref("DataView.prototype.setInt8()")}}
- : 指定一个数字,并将其作为 8 位有符号整数存储在当前 `DataView` 的指定字节偏移处的 1 个字节中。
- {{jsxref("DataView.prototype.setUint16()")}}
- : 指定一个数字,并将其作为 16 位无符号整数存储在当前 `DataView` 的指定字节偏移处的 2 个字节中。
- {{jsxref("DataView.prototype.setUint32()")}}
- : 在视图开始的指定字节偏移处存储一个无符号 32 位整数(unsigned long)。
- {{jsxref("DataView.prototype.setFloat32()")}}
- : 在视图开始的指定字节偏移处存储一个带符号 32 位浮点数(float)。
- {{jsxref("DataView.prototype.setFloat64()")}}
- : 在视图开始的指定字节偏移处存储一个带符号 64 位浮点数(double)。
- {{jsxref("DataView.prototype.setBigInt64()")}}
- : 在视图开始的指定字节偏移处存储一个带符号 64 位 BigInt(long long)。
- {{jsxref("DataView.prototype.setBigUint64()")}}
- : 在视图开始的指定字节偏移处存储一个无符号 64 位 BigInt(unsigned long long)。
- : 指定一个数字,并将其作为 32 位无符号整数存储在当前 `DataView` 的指定字节偏移处的 4 个字节中。
- {{jsxref("DataView.prototype.setUint8()")}}
- : 指定一个数字,并将其作为 8 位无符号整数存储在当前 `DataView` 的指定字节偏移处的 1 个字节中。

## 示例

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

{{JSRef}}

{{jsxref("DataView")}} 实例的 **`setFloat16()`** 接受一个数字,并将其以 16 位浮点数的形式存储在从当前 `DataView` 的指定偏移位置开始处的 2 字节中。如果没有对齐约束;则可以在边界内的任意偏移位置处存储多字节值。

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

## 语法

```js-nolint
setFloat16(byteOffset, value)
setFloat16(byteOffset, value, littleEndian)
```

### 参数

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

### 返回值

{{jsxref("undefined")}}。

### 异常

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

## 示例

### 使用 setFloat16()

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

## 规范

{{Specifications}}

## 浏览器兼容性

{{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")}}