|
5 | 5 |
|
6 | 6 | > Stability: 2 - Stable
|
7 | 7 |
|
8 |
| -Prior to the introduction of [`TypedArray`] in [`ECMAScript 2015`] (ES6), the |
9 |
| -JavaScript language had no mechanism for reading or manipulating streams |
10 |
| -of binary data. The `Buffer` class was introduced as part of the Node.js |
11 |
| -API to make it possible to interact with octet streams in the context of things |
12 |
| -like TCP streams and file system operations. |
| 8 | +Prior to the introduction of [`TypedArray`], the JavaScript language had no |
| 9 | +mechanism for reading or manipulating streams of binary data. The `Buffer` class |
| 10 | +was introduced as part of the Node.js API to make it possible to interact with |
| 11 | +octet streams in the context of things like TCP streams and file system |
| 12 | +operations. |
13 | 13 |
|
14 |
| -Now that [`TypedArray`] has been added in ES6, the `Buffer` class implements the |
15 |
| -[`Uint8Array`] API in a manner that is more optimized and suitable for Node.js' |
16 |
| -use cases. |
| 14 | +With [`TypedArray`] now available, the `Buffer` class implements the |
| 15 | +[`Uint8Array`] API in a manner that is more optimized and suitable for Node.js. |
17 | 16 |
|
18 | 17 | Instances of the `Buffer` class are similar to arrays of integers but
|
19 | 18 | correspond to fixed-sized, raw memory allocations outside the V8 heap.
|
@@ -207,11 +206,10 @@ changes:
|
207 | 206 | -->
|
208 | 207 |
|
209 | 208 | `Buffer` instances are also [`Uint8Array`] instances. However, there are subtle
|
210 |
| -incompatibilities with the TypedArray specification in [`ECMAScript 2015`]. |
211 |
| -For example, while [`ArrayBuffer#slice()`] creates a copy of the slice, the |
212 |
| -implementation of [`Buffer#slice()`][`buf.slice()`] creates a view over the |
213 |
| -existing `Buffer` without copying, making [`Buffer#slice()`][`buf.slice()`] far |
214 |
| -more efficient. |
| 209 | +incompatibilities with [`TypedArray`]. For example, while |
| 210 | +[`ArrayBuffer#slice()`] creates a copy of the slice, the implementation of |
| 211 | +[`Buffer#slice()`][`buf.slice()`] creates a view over the existing `Buffer` |
| 212 | +without copying, making [`Buffer#slice()`][`buf.slice()`] far more efficient. |
215 | 213 |
|
216 | 214 | It is also possible to create new [`TypedArray`] instances from a `Buffer` with
|
217 | 215 | the following caveats:
|
@@ -278,10 +276,9 @@ function:
|
278 | 276 | * [`Buffer.from(arrayBuffer[, byteOffset [, length]])`][`Buffer.from(arrayBuffer)`]
|
279 | 277 | * [`Buffer.from(string[, encoding])`][`Buffer.from(string)`]
|
280 | 278 |
|
281 |
| -## Buffers and ES6 iteration |
| 279 | +## Buffers and iteration |
282 | 280 |
|
283 |
| -`Buffer` instances can be iterated over using the [`ECMAScript 2015`] (ES6) `for..of` |
284 |
| -syntax. |
| 281 | +`Buffer` instances can be iterated over using `for..of` syntax: |
285 | 282 |
|
286 | 283 | ```js
|
287 | 284 | const buf = Buffer.from([1, 2, 3]);
|
@@ -2552,5 +2549,4 @@ This value may depend on the JS engine that is being used.
|
2552 | 2549 | [RFC1345]: https://tools.ietf.org/html/rfc1345
|
2553 | 2550 | [RFC4648, Section 5]: https://tools.ietf.org/html/rfc4648#section-5
|
2554 | 2551 | [WHATWG Encoding Standard]: https://encoding.spec.whatwg.org/
|
2555 |
| -[`ECMAScript 2015`]: https://www.ecma-international.org/ecma-262/6.0/index.html |
2556 | 2552 | [iterator]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols
|
0 commit comments