1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
---
title: SharedArrayBuffer.prototype.slice()
slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice
tags:
- JavaScript
- Mémoire partagée
- Méthode
- Prototype
- Reference
- SharedArrayBuffer
- TypedArrays
translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice
original_slug: Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer/slice
---
{{JSRef}}
La méthode **`SharedArrayBuffer.prototype.slice()`** renvoie un nouvel objet {{jsxref("SharedArrayBuffer")}} dont le contenu est une copie des octets de l'objet `SharedArrayBuffer` courant entre un indice de début (inclus) et un indice de fin (exclus) (autrement dit, on copie une « tranche » du tampon courant). Si l'indice de début ou de fin est négatif, la position sera comptée à partir de la fin du tableau plutôt qu'à partir du début. L'algorithme appliqué est le même que {{jsxref("Array.prototype.slice()")}}_._
{{EmbedInteractiveExample("pages/js/sharedarraybuffer-slice.html")}}
## Syntaxe
sab.slice()
sab.slice(début)
sab.slice(début, fin)
### Paramètres
- `début` {{optional_inline}}
- : L'indice auquel commencer l'extraction (le début du tableau se situe à l'indice 0).
Si la valeur est négative, `début` indique le décalage à partir de la fin du tableau. Ainsi `slice(-2)` permettra d'extraire les deux derniers éléments du tableau.
Si `début` est absent, `slice` commencera l'extraction à partir de l'indice 0.
- `fin` {{optional_inline}}
- : L'indice auquel finir l'extraction. Attention, la valeur du tableau pour cet indice n'est pas incluse dans l'extraction.
Ainsi, `slice(1,4)` permettra d'extraire entre le deuxième et le quatrième élément (c'est-à-dire les trois éléments dont les indices sont respectivement 1, 2 et 3).
Si `fin` est un indice négatif, il indique le décalage à partir de la fin du tableau. Autrement dit `slice(2,-1)` permettra d'extraire les éléments du tampon à partir du troisième élément et jusqu'à l'avant-avant-dernier élément.
Si `fin` est absent, `slice` réalisera l'extraction jusqu'à la fin de la séquence (`sab.byteLength`).
### Valeur de retour
Un nouvel objet {{jsxref("SharedArrayBuffer")}} qui contient les éléments extraits.
## Exemples
```js
var sab = new SharedArrayBuffer(1024);
sab.slice(); // SharedArrayBuffer { byteLength: 1024 }
sab.slice(2); // SharedArrayBuffer { byteLength: 1022 }
sab.slice(-2); // SharedArrayBuffer { byteLength: 2 }
sab.slice(0,1); // SharedArrayBuffer { byteLength: 1 }
```
## Spécifications
| Spécification | État | Commentaires |
| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------- |
| {{SpecName('ESDraft', '#sec-sharedarraybuffer.prototype.slice', 'SharedArrayBuffer.prototype.slice')}} | {{Spec2('ESDraft')}} | Définition initiale avec ES2017. |
## Compatibilité des navigateurs
{{Compat("javascript.builtins.SharedArrayBuffer.slice")}}
## Voir aussi
- {{jsxref("SharedArrayBuffer")}}
- {{jsxref("Array.prototype.slice()")}}
|