recursal/MDN huggingface dataset:
handler.apply()
===============

**`handler.apply()`** 方法用于拦截函数的调用。

尝试一下
----

语法
--


```js
var p = new Proxy(target, {
  apply: function (target, thisArg, argumentsList) {},
});
```

### 参数

以下是传递给 apply 方法的参数，`this` 上下文绑定在 handler 对象上。

`target`

目标对象（函数）。

`thisArg`

被调用时的上下文对象。

`argumentsList`

被调用时的参数数组。

### 返回值

`apply` 方法可以返回任何值。

描述
--

**`handler.apply`** 方法用于拦截函数的调用。

### 拦截

该方法会拦截目标对象的以下操作：

* `proxy(...args)`
* `Function.prototype.apply()` 和 `Function.prototype.call()`
* `Reflect.apply()`
### 约束

如果违反了以下约束，代理将抛出一个 TypeError：

`target` 必须是可被调用的。也就是说，它必须是一个函数对象。

示例
--

以下代码演示如何捕获函数的调用。


```js
var p = new Proxy(function () {}, {
  apply: function (target, thisArg, argumentsList) {
    console.log("called: " + argumentsList.join(", "));
    return argumentsList[0] + argumentsList[1] + argumentsList[2];
  },
});

console.log(p(1, 2, 3)); // "called: 1, 2, 3"; outputs 6
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

另见
--

* `Proxy`
* `handler` (en-US)
* `Function.prototype.apply`
* `Function.prototype.call`
* `Reflect.apply()`
handler.isExtensible()
======================


**handler.isExtensible()** 方法用于拦截对对象的 Object.isExtensible()。
尝试一下
----

语法
--


```js
var p = new Proxy(target, {
  isExtensible: function (target) {},
});
```

### 参数

下列参数将会被传递给 `isExtensible`方法。this 绑定在 handler 对象上。

`target`

目标对象。

### 返回值

`isExtensible`方法必须返回一个 Boolean 值或可转换成 Boolean 的值。

描述
--

handler.isExtensible() 用于拦截对对象的 Object.isExtensible()。

### 拦截

该方法会拦截目标对象的以下操作：

* `Object.isExtensible()`
* `Reflect.isExtensible()`
### 约束

如果违背了以下的约束，proxy 会抛出 TypeError:

* `Object.isExtensible(proxy)` 必须同 `Object.isExtensible(target)` 返回相同值。
示例
--

以下代码演示`Object.isExtensible()`.


```js
var p = new Proxy(
  {},
  {
    isExtensible: function (target) {
      console.log("called");
      return true; // 也可以 return 1; 等表示为 true 的值
    },
  },
);

console.log(Object.isExtensible(p)); // "called"; outputs true
```


以下代码演示违反约束的情况。


```js
var p = new Proxy(
  {},
  {
    isExtensible: function (target) {
      return false; // return 0; return NaN 等都会报错
    },
  },
);

Object.isExtensible(p); // TypeError is thrown
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-proxy-object-internal-methods-and-internal-slots-isextensible |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

另见
--

* `Proxy`
* `handler` (en-US)
* `Object.isExtensible()`
* `Reflect.isExtensible()`
handler.preventExtensions()
===========================

**`handler.preventExtensions()`** 方法用于设置对`Object.preventExtensions()`的拦截

尝试一下
----

语法
--


```js
var p = new Proxy(target, {
  preventExtensions: function (target) {},
});
```

### 参数

以下参数传递给 `preventExtensions` 方法。它会绑定到这个 handler.

`target`

所要拦截的目标对象。

### 返回值

`preventExtensions` 方法返回一个布尔值。

描述
--

**`handler.preventExtensions()`** 拦截 `Object.preventExtensions()`返回一个布尔值。

### 拦截

这个 trap 可以拦截这些操作：

* `Object.preventExtensions()`
* `Reflect.preventExtensions()`
### 约束

如果违反了下列规则，proxy 则会抛出一个 `TypeError`:

* 如果目标对象是可扩展的，那么只能返回 `false`
示例
--

以下代码演示了如何拦截`Object.preventExtensions()`。


```js
var p = new Proxy(
  {},
  {
    preventExtensions: function (target) {
      console.log("called");
      Object.preventExtensions(target);
      return true;
    },
  },
);

console.log(Object.preventExtensions(p)); // "called"; outputs false
```


以下代码违反了约束。


```js
var p = new Proxy(
  {},
  {
    preventExtensions: function (target) {
      return true;
    },
  },
);

Object.preventExtensions(p); // 抛出类型错误
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-proxy-object-internal-methods-and-internal-slots-preventextensions |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参考
--

* `Proxy`
* `handler` (en-US)
* `Object.preventExtensions()`
* `Reflect.preventExtensions()`
WeakMap() 构造函数
==============

**`WeakMap()`** 构造函数创建 `WeakMap` 对象。

语法
--


```js
new WeakMap()
new WeakMap(iterable)
```


**备注：** `WeakMap()` 构造函数只能使用 `new` 调用。不使用 `new` 而直接调用会抛出 `TypeError`。

参数
--

`iterable`

一个 `Array` 或者其他实现了 `@@iterator` 方法的可迭代对象，该方法返回一个迭代器对象，该对象会产生一个二元类数组对象，其第一个元素是将被用作 `WeakMap` 键的对象，第二个元素是与该键相关联的值。每个键值对都会被添加到新的 `WeakMap` 对象中。`null` 会被视为 `undefined`。

示例
--

### 使用 WeakMap


```js
const wm1 = new WeakMap();
const wm2 = new WeakMap();
const wm3 = new WeakMap();
const o1 = {};
const o2 = function () {};
const o3 = window;

wm1.set(o1, 37);
wm1.set(o2, "azerty");
wm2.set(o1, o2); // value 可以是任何值，包括对象或函数
wm2.set(o3, undefined);
wm2.set(wm1, wm2); // 键和值可以是任何对象，甚至是 WeakMap！

wm1.get(o2); // "azerty"
wm2.get(o2); // undefined，因为 wm2 上没有 o2 的键
wm2.get(o3); // undefined，因为设置的值就是 undefined

wm1.has(o2); // true
wm2.has(o2); // false
wm2.has(o3); // true（即使值是 undefined）

wm3.set(o1, 37);
wm3.get(o1); // 37

wm1.has(o1); // true
wm1.delete(o1);
wm1.has(o1); // false
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-weakmap-constructor |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `core-js` 中 `WeakMap` 的 polyfill
* JavaScript 指南中的 `WeakMap`
* 使用 ECMAScript 6 WeakMap 隐藏实现细节
* `Map`
* `Set`
* `WeakSet`
WeakMap.prototype.set()
=======================

`WeakMap` 实例的 **`set()`** 方法根据指定的键值在该 `WeakMap` 中添加新元素。

尝试一下
----

语法
--


```js
set(key, value)
```

### 参数

`key`

必须是对象或非全局注册的符号。要添加到 `WeakMap` 对象的元素的键。

`value`

任何要添加到 `WeakMap` 对象的元素的值。

### 返回值

该 `WeakMap` 对象

### 异常

`TypeError`

如果 `key` 不是一个对象或非全局注册的符号，则抛出该异常。

示例
--

### 使用 set() 方法


```js
const wm = new WeakMap();
const obj = {};

// 将新元素添加到 WeakMap
wm.set(obj, "foo").set(window, "bar"); // 链式调用

// 更新 WeakMap 中的元素
wm.set(obj, "baz");

// 使用非全局注册的符号作为键
const sym = Symbol("foo");
wm.set(sym, "baz");
wm.set(Symbol.iterator, "qux");
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-weakmap.prototype.set |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `WeakMap`
* `WeakMap.prototype.get()`
* `WeakMap.prototype.has()`
WeakMap.prototype.delete()
==========================

`WeakMap` 实例的 **`delete()`** 方法从该 `WeakMap` 中删除指定的元素。

尝试一下
----

概述
--

**`delete()`** 方法可以从一个 `WeakMap` 对象中删除指定的元素。

语法
--


```js
weakMapInstance.delete(key)
```

### 参数

`key`

要从 `WeakMap` 对象中删除的元素的键。

### 返回值

如果成功在 `WeakMap` 对象中删除了元素，则返回 `true`。如果未在 `WeakMap` 中找到该键，则返回 `false`。如果 `key` 不是对象或非全局注册的符号，则始终返回 `false`。

示例
--

### 使用 delete() 方法


```js
const wm = new WeakMap();
wm.set(window, "foo");

wm.delete(window); // 返回 true。成功删除。

wm.has(window); // 返回 false。WeakMap 中已经不存在 window 对象。
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-weakmap.prototype.delete |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `WeakMap`
WeakMap.prototype.get()
=======================

`WeakMap` 实例的 **`get()`** 方法返回该 `WeakMap` 中的指定元素。

尝试一下
----

语法
--


```js
get(key)
```

### 参数

`key`

要从 `WeakMap` 对象返回的元素的键。

### 返回值

该 `WeakMap` 对象中与指定键相关联的元素。如果找不到该键，则返回 `undefined`。如果 `key` 不是对象或非全局注册的符号，则始终返回 `undefined`。

示例
--

### 使用 get() 方法


```js
const wm = new WeakMap();
wm.set(window, "foo");

wm.get(window); // 返回 "foo"。
wm.get("baz"); // 返回 undefined。
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-weakmap.prototype.get |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `WeakMap`
* `WeakMap.set()`
* `WeakMap.has()`
WeakMap.prototype.has()
=======================

`WeakMap` 实例的 **`has()`** 返回一个布尔值，指示该 `WeakMap` 中是否存在具有指定键的元素。

尝试一下
----

语法
--


```js
has(key)
```

### 参数

`key`

要测试是否在该 `WeakMap` 对象中存在的元素的键。

### 返回值

如果指定键的元素存在于 `WeakMap` 对象中，则返回 `true`；否则返回 `false`。如果 `key` 不是对象或非全局注册的符号，则始终返回 `false`。

示例
--

### 使用 has 方法


```js
const wm = new WeakMap();
wm.set(window, "foo");

wm.has(window); // 返回 true
wm.has("baz"); // 返回 false
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-weakmap.prototype.has |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `WeakMap`
* `WeakMap.prototype.set()`
* `WeakMap.prototype.get()`
DataView.prototype.setFloat64()
===============================

**`setFloat64()`** 从 `DataView` 起始位置以 byte 为计数的指定偏移量 (byteOffset) 处储存一个 64-bit 数 (双精度浮点型)。

尝试一下
----

语法
--
```

dataview.setFloat64(byteOffset, value [, littleEndian])
```

### 参数

byteOffset

偏移量，从头开始计算，单位为字节。

value

设置的数值。

littleEndian

可选 Indicates whether the 64-bit float is stored in little- or big-endian format. If false or undefined, a big-endian value is written.

### 返回

`undefined`.

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setFloat64(0, 3);
dataview.getFloat64(0); // 3
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.setfloat64 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关内容
----

* `DataView`
* `ArrayBuffer`
DataView.prototype.byteOffset
=============================

**`byteOffset`** 属性描述了从 `ArrayBuffer` 开始的字节偏移量。

尝试一下
----

语法
--
```

dataview.byteOffset
```

描述
--

`byteOffset` 属性是一个获取 (accessor) 属性，它的 set 属性为 undefined，这意味着它是只读的。值在 `DataView` 被创建时就确定了，且不能改变。

示例
--

### `使用 byteOffset 属性`


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.byteOffset; // 0 (没有指定偏移量)

var dataview2 = new DataView(buffer, 3);
dataview2.byteOffset; // 3 (在构造 DataView 时指定)
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-get-dataview.prototype.byteoffset |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `DataView`
* `ArrayBuffer`
DataView.prototype.setInt8()
============================

**`setInt8()`** 从 `DataView` 起始位置以 byte 为计数的指定偏移量 (byteOffset) 处储存一个 8-bit 数 (一个字节)。

尝试一下
----

语法
--
```

dataview.setInt8(byteOffset, value)
```

参数
--

byteOffset

偏移量，从头开始计算，单位为字节

value

设置的整数值

### 返回

`undefined`.

### 抛出的错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setInt8(1, 3);
dataview.getInt8(1); // 3
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.setint8 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关内容
----

* `DataView`
* `ArrayBuffer`
DataView.prototype.getFloat32()
===============================

\*\*`getFloat32()`\*\*方法从相对于`DataView` 的起始位置偏移 n 个字节处获取一个 32-bit 浮点数 (单精度浮点数，4 个字节).

尝试一下
----

语法
--
```

dataview.getFloat32(byteOffset [, littleEndian])
```

### 参数

byteOffset

偏移量，单位为字节，为从视图的开始位置到读取数值的位置的偏移。

littleEndian

可选 表示这个 32 位浮点数是否以 little- or big-endian 格式存储，如果设置为 false 或者不指定，将用 big-endian 格式读取数值。

### 返回

一个带符号的 32 位浮点数。

### 抛出错误

`RangeError`

如果 byteOffset 设置导致读数值时超出了视图的末尾就会抛出错误。

说明
--

没有对齐约束; 多字节值可以从任何偏移处获取。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.getFloat32(1); // 0
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.getfloat32 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

另见
--

* `DataView`
* `ArrayBuffer`
DataView.prototype.setInt16()
=============================

\*\*`setInt16()`\*\*从 `DataView` 起始位置以 byte 为计数的指定偏移量 (byteOffset) 处储存一个 16-bit 数 (短整型)。

尝试一下
----

语法
--
```

dataview.setInt16(byteOffset, value [, littleEndian])
```

### 参数

byteOffset

偏移量，从头开始计算，单位为字节。

value

设置的数值。

littleEndian

可选 Indicates whether the 16-bit int is stored in little- or big-endian format. If false or undefined, a big-endian value is written.

### 返回

`undefined`.

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setInt16(1, 3);
dataview.getInt16(1); // 3
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.setint16 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关内容
----

* `DataView`
* `ArrayBuffer`
DataView.prototype.setBigInt64()
================================

\*\*`setBigInt64()`\*\*方法在距`DataView` 的起始位置的指定字节偏移处存储一个带符号的 64 位整数（long long 类型）值。

尝试一下
----

语法
--
```

dataview.setBigInt64(byteOffset, value [, littleEndian])
```

### 参数说明

byteOffset

字节偏移量，为从视图的起始位置到数据存储位置的字节字节偏移量。

value

作为一个`BigInt`类型设置的数值。满足一个带符号的 64 位整数的最大可能数值是 `2n ** (64n -1n) - 1n` (`9223372036854775807n`)。当发生溢出时，将会变成负数 (`-9223372036854775808n`)。

littleEndian

可选 为可选参数，表示这个 64 位整数是否以little-endian 或者 big-endian格式存储。如果设置为`false` 或者未指定（`undefined`），将会写入一个 big-endian（大端模式：高位字节排放在内存的低地址端，低位字节排放在内存的高地址端）格式的数值。

### 返回值

`undefined`.

### 抛出的错误

`RangeError`

如果 `byteOffset`设置导致存储该数值时超出了视图的末尾位置，将会抛出错误。

示例
--

### 使用 `setBigInt64` 方法


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setBigInt64(0, 3n);
dataview.getBigInt64(0); // 3n
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.setbigint64 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

请参阅
---

* `DataView`
* `ArrayBuffer`
* `BigInt`
DataView.prototype.setUint32()
==============================

**`setUint32()`** 从 `DataView` 起始位置以 byte 为计数的指定偏移量 (byteOffset) 处储存一个 32-bit 数 (无符号长整型)。

尝试一下
----

语法
--
```

dataview.setUint32(byteOffset, value [, littleEndian])
```

### 参数

byteOffset

偏移量，从头开始计算，单位为字节。

value

设置的数值。

littleEndian

可选 Indicates whether the 32-bit int is stored in little- or big-endian format. If false or undefined, a big-endian value is written.

### 返回

`undefined`.

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setUint32(1, 3);
dataview.getUint32(1); // 3
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.setuint32 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关内容
----

* `DataView`
* `ArrayBuffer`
DataView.prototype.getUint8()
=============================

**`getUint8()`** 方法从 `DataView`相对于起始位置偏移 n 个字节处开始，获取一个无符号的 8-bit 整数 (一个字节).

尝试一下
----

语法
--
```

dataview.getUint8(byteOffset)
```

参数
--

byteOffset

偏移量，单位为字节，从头开始计算。

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

描述
--

没有对齐约束; 多字节值可以从任何偏移量获取。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.getUint8(1); // 0
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.getuint8 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关内容
----

* `DataView`
* `ArrayBuffer`
DataView.prototype.getFloat64()
===============================

**`getFloat64()`** 方法从 `DataView`相对于起始位置偏移 n 个字节处开始，获取一个 64-bit 数 (双精度浮点型，8 个字节)。

尝试一下
----

语法
--
```

dataview.getFloat64(byteOffset [, littleEndian])
```

### 参数

byteOffset

偏移量，单位为字节，从头开始计算。

littleEndian

可选 Indicates whether the 64-bit float is stored in little- or big-endian format. If false or undefined, a big-endian value is read.

### 返回

一个双精度浮点型 64 位数。

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

描述
--

没有对齐约束; 多字节值可以从任何偏移量获取。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.getFloat64(1); // 0
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.getfloat64 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

另见
--

* `DataView`
* `ArrayBuffer`
DataView.prototype.setUint16()
==============================

**`setUint16()`** 从 `DataView` 起始位置以 byte 为计数的指定偏移量 (byteOffset) 处储存一个 16-bit 数 (无符号短整型)。

尝试一下
----

语法
--
```

dataview.setUint16(byteOffset, value [, littleEndian])
```

### 参数

byteOffset

偏移量，从头开始计算，单位为字节。

value

设置的数值。

littleEndian

可选 Indicates whether the 16-bit int is stored in little- or big-endian format. If false or undefined, a big-endian value is written.

### 返回

`undefined`.

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setUint16(1, 3);
dataview.getUint16(1); // 3
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.setuint16 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关内容
----

* `DataView`
* `ArrayBuffer`
DataView.prototype.getBigUint64()
=================================

`DataView` 的 **`getBigUint64()`** 方法，从 `DataView` 的指定的字节偏移量位置读取 8 个字节，并将其解析为一个无符号 64 位整数（unsigned long long）。

尝试一下
----

语法
--


```js
getBigUint64(byteOffset)
getBigUint64(byteOffset, littleEndian)
```

### 参数

byteOffset

表示从视图的开始位置到要读取数据位置的偏移量，以字节为单位。

`littleEndian` 可选

指示 64 位整数是以小端还是大端格式存储。如果值为 `false` 或 `undefined`，则以大端格式读取。

### 返回值

一个 `BigInt`。

### 异常

`RangeError`

如果 `byteOffset` 设置导致读取时超出了视图的末尾位置，则抛出该错误。

描述
--

没有对齐约束，可以从任意偏移量获取多字节值。

示例
--

### 使用 `getBigUint64` 方法


```js
const buffer = new ArrayBuffer(8);
const dataview = new DataView(buffer);
dataview.getBigUint64(0); // 0n
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.getbiguint64 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `DataView`
* `ArrayBuffer`
* `BigInt`
DataView.prototype.getInt8()
============================

**`getInt8()`** 方法从 `DataView` 相对于起始位置偏移 n 个字节处开始，获取一个有符号的 8-bit 整数 (一个字节)。

尝试一下
----

语法
--
```

dataview.getInt8(byteOffset)
```

参数
--

byteOffset

偏移量，单位为字节，从起始位置开始计算。

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

描述
--

没有对齐约束; 多字节值可以从任何偏移量获取。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.getInt8(1); // 0
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.getint8 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关内容
----

* `DataView`
* `ArrayBuffer`
DataView.prototype.setFloat32()
===============================

**`setFloat32()`** 从 `DataView`起始位置以 byte 为计数的指定偏移量 (byteOffset) 处储存一个 32-bit 数 (浮点型)。

尝试一下
----

语法
--
```

dataview.setFloat32(byteOffset, value [, littleEndian])
```

### 参数

byteOffset

偏移量，从头开始计算，单位为字节。

value

设置的数值。

littleEndian

可选 Indicates whether the 32-bit float is stored in little- or big-endian format. If false or undefined, a big-endian value is written.

### 返回

`undefined`.

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setFloat32(1, 3);
dataview.getFloat32(1); // 3
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.setfloat32 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关内容
----

* `DataView`
* `ArrayBuffer`
DataView.prototype.setInt32()
=============================

**`setInt32()`** 从 `DataView` 起始位置以 byte 为计数的指定偏移量 (byteOffset) 处储存一个 32-bit 数 (长整型)。

尝试一下
----

语法
--
```

dataview.setInt32(byteOffset, value [, littleEndian])
```

### 参数

byteOffset

偏移量，从头开始计算，单位为字节。

value

设置的数值。

littleEndian

可选 Indicates whether the 32-bit int is stored in little- or big-endian format. If false or undefined, a big-endian value is written.

### 返回

`undefined`.

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setInt32(1, 3);
dataview.getInt32(1); // 3
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.setint32 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关
--

* `DataView`
* `ArrayBuffer`
DataView.prototype.getUint16()
==============================

**`getUint16()`** 方法从 `DataView` 相对于起始位置偏移 n 个字节处开始，获取一个 16-bit 数 (无符号短整型，2 个字节)。

尝试一下
----

语法
--
```

dataview.getUint16(byteOffset [, littleEndian])
```

### 参数

byteOffset

偏移量，单位为字节，从头开始计算。

littleEndian

可选 Indicates whether the 16-bit int is stored in little- or big-endian format. If false or undefined, a big-endian value is read.

### 返回

一个无符号短整型 16 位数。

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

描述
--

没有对齐约束; 多字节值可以从任何偏移量获取。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.getUint16(1); // 0
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.getuint16 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

另见
--

* `DataView`
* `ArrayBuffer`
DataView.prototype.getInt16()
=============================

**`getInt16()`** 方法从 `DataView` 相对于起始位置偏移 n 个字节处开始，获取一个 16-bit 数 (短整型，2 个字节)。

尝试一下
----

语法
--
```

dataview.getInt16(byteOffset [, littleEndian])
```

### 参数

byteOffset

偏移量，单位为字节，从头开始计算。

littleEndian

可选 表示该 16 位整数是否以 little- or big-endian 格式存储的（就是使用的字节序格式，具体参考链接页面）；如果传入的值为 `true`，就表示使用 little-endian（低字节序），如果传入的值为 `false` 或者 `undefined`，则会使用 big-endian（高字节序）方式读值。

### 返回

一个短整型 16 位数。

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

描述
--

没有对齐约束; 多字节值可以从任何偏移量获取。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.getInt16(1); // 0
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.getint16 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

另见
--

* `DataView`
* `ArrayBuffer`
getBigInt64()
=============

**`getBigInt64()`** 方法从 `DataView` 开始获取一个指定偏移量的有符号 64 位整数 (long long) 。

尝试一下
----

语法
--
```

dataview.getBigInt64(byteOffset [, littleEndian])
```

### 参数

byteOffset

偏移量，以字节为单位。指明视图开始读取数据的偏移量。

littleEndian

可选 指明该 64 位整型数值的存储方式（ 大小端模式）。如果为 `false` 或 `undefined`, 则按大端方式读取数据。

### 返回值

一个 `BigInt`.

### 异常抛出

`RangeError`

如果 `byteOffset` 设置的偏移量超出了视图的范围，则抛出该异常。

简介
--

* 没有对齐约束;
* 可以从任何偏移量获取多字节值。
示例
--

### 使用 `getBigInt64` 方法


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.getBigInt64(0); // 0n
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.getbigint64 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参见
--

* `DataView`
* `ArrayBuffer`
* `BigInt`
DataView.prototype.setUint8()
=============================

**`setUint8()`** 从 `DataView` 起始位置以 byte 为计数的指定偏移量 (byteOffset) 处储存一个 8-bit 数 (无符号字节)。

尝试一下
----

语法
--
```

dataview.setUint8(byteOffset, value)
```

### 参数

byteOffset

偏移量，从头开始计算，单位为字节

value

设置的数值

### 返回

`undefined`.

### 抛出错误

`RangeError`

如果 byteOffset 超出了视图能储存的值，就会抛出错误。

示例
--


```js
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setUint8(1, 3);
dataview.getUint8(1); // 3
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-dataview.prototype.setuint8 |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

相关内容
----

* `DataView`
* `ArrayBuffer`