From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../arraybuffer/@@species/index.html | 74 +++++++++++ .../arraybuffer/bytelength/index.html | 71 ++++++++++ .../objets_globaux/arraybuffer/index.html | 145 +++++++++++++++++++++ .../objets_globaux/arraybuffer/isview/index.html | 90 +++++++++++++ .../arraybuffer/prototype/index.html | 69 ++++++++++ .../objets_globaux/arraybuffer/slice/index.html | 88 +++++++++++++ .../objets_globaux/arraybuffer/transfer/index.html | 100 ++++++++++++++ 7 files changed, 637 insertions(+) create mode 100644 files/fr/web/javascript/reference/objets_globaux/arraybuffer/@@species/index.html create mode 100644 files/fr/web/javascript/reference/objets_globaux/arraybuffer/bytelength/index.html create mode 100644 files/fr/web/javascript/reference/objets_globaux/arraybuffer/index.html create mode 100644 files/fr/web/javascript/reference/objets_globaux/arraybuffer/isview/index.html create mode 100644 files/fr/web/javascript/reference/objets_globaux/arraybuffer/prototype/index.html create mode 100644 files/fr/web/javascript/reference/objets_globaux/arraybuffer/slice/index.html create mode 100644 files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html (limited to 'files/fr/web/javascript/reference/objets_globaux/arraybuffer') diff --git a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/@@species/index.html b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/@@species/index.html new file mode 100644 index 0000000000..edf4cdfdde --- /dev/null +++ b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/@@species/index.html @@ -0,0 +1,74 @@ +--- +title: 'get ArrayBuffer[@@species]' +slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/@@species +tags: + - ArrayBuffer + - JavaScript + - Propriété + - Reference + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/@@species +--- +
{{JSRef}}
+ +

La propriété d'accesseur ArrayBuffer[@@species] renvoie le constructeur ArrayBuffer.

+ +

Syntaxe

+ +
ArrayBuffer[Symbol.species]
+
+ +

Description

+ +

L'accesseur species renvoie le constructeur par défaut pour les objets ArrayBuffer. Les constructeurs des sous-classes peuvent surcharger ce symbole pour modifier l'affectation du constructeur.

+ +

Exemples

+ +

La propriété species renvoie le constructeur par défaut, soit ArrayBuffer dans le cas des objets ArrayBuffer :

+ +
ArrayBuffer[Symbol.species]; // function ArrayBuffer()
+ +

Pour un objet dérivé (par exemple une classe sur mesure MonArrayBuffer), le symbole species renverra le constructeur MonArrayBuffer. Il est possible de surcharger ce comportement pour renvoyer le constructeur ArrayBuffer :

+ +
class MonArrayBuffer extends ArrayBuffer {
+  // On surcharge species pour renvoyer
+  // le constructeur parent ArrayBuffer
+  static get [Symbol.species]() { return ArrayBuffer; }
+}
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES6', '#sec-get-arraybuffer-@@species', 'get ArrayBuffer [ @@species ]')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-arraybuffer-@@species', 'get ArrayBuffer [ @@species ]')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +
+ + +

{{Compat("javascript.builtins.ArrayBuffer.@@species")}}

+
+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/bytelength/index.html b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/bytelength/index.html new file mode 100644 index 0000000000..6cf497e790 --- /dev/null +++ b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/bytelength/index.html @@ -0,0 +1,71 @@ +--- +title: ArrayBuffer.prototype.byteLength +slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/byteLength +tags: + - ArrayBuffer + - JavaScript + - Propriété + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength +--- +
{{JSRef}}
+ +

L'accesseur byteLength est une propriété représentant la longueur d'un {{jsxref("ArrayBuffer")}} en octets.

+ +
{{EmbedInteractiveExample("pages/js/arraybuffer-bytelength.html")}}
+ + + +

Syntaxe

+ +
arraybuffer.byteLength
+ +

Description

+ +

La propriété byteLength est un accesseur dont le mutateur associé vaut undefined. Cela signifie que cette propriété est en lecture seule. La valeur est déterminée lors de la construction du tableau et ne peut pas être changée par la suite. Cette propriété renvoie 0 si ce ArrayBuffer a été détaché.

+ +

Exemples

+ +
var buffer = new ArrayBuffer(8);
+buffer.byteLength; // 8
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Remplacée dans ECMAScript 2015.
{{SpecName('ES2015', '#sec-get-arraybuffer.prototype.bytelength', 'ArrayBuffer.prototype.byteLength')}}{{Spec2('ES2015')}}Définition initiale au sein d'un standard ECMA.
{{SpecName('ESDraft', '#sec-get-arraybuffer.prototype.bytelength', 'ArrayBuffer.prototype.byteLength')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.byteLength")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/index.html b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/index.html new file mode 100644 index 0000000000..400f1cdf38 --- /dev/null +++ b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/index.html @@ -0,0 +1,145 @@ +--- +title: ArrayBuffer +slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer +tags: + - ArrayBuffer + - Constructor + - JavaScript + - Reference + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer +--- +
{{JSRef}}
+ +

L'objet ArrayBuffer est utilisé afin de représenter un tampon (buffer) de données binaires de longueur fixe de façon générique. C'est un tableau d'octets. La manipulation du contenu d'un ArrayBuffer se fait de façon indirecte en créant un tableau typé ou un objet {{jsxref("DataView")}} qui permet de représenter le tampon dans un format donné qui permet de lire/écrire des contenus dans le tampon de mémoire.

+ +
{{EmbedInteractiveExample("pages/js/arraybuffer-constructor.html")}}
+ + + +

Syntaxe

+ +
new ArrayBuffer(longueur)
+
+ +

Paramètres

+ +
+
longueur
+
La taille, exprimée en octets, du tableau représentant le tampon.
+
+ +

Valeur de retour

+ +

Un nouvel objet ArrayBuffer de la taille donnée. Ses éléments sont initialisés à 0.

+ +

Exceptions

+ +

Une exception {{jsxref("RangeError")}} est levée lorsque l'argument longueur est supérieur à {{jsxref("Number.MAX_SAFE_INTEGER")}} (soit 253) ou s'il est négatif.

+ +

Description

+ +

Le constructeur ArrayBuffer crée une nouvelle instance d'ArrayBuffer dont la longueur est celle donnée lors de la construction.

+ +

Obtenir un tampon mémoire depuis des données existantes

+ + + +

Propriétés

+ +
+
ArrayBuffer.length
+
La longueur du constructeur ArrayBuffer. Elle vaut 1.
+
{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}}
+
La fonction de construction utilisée pour créer les objets dérivés.
+
{{jsxref("ArrayBuffer.prototype")}}
+
Cette propriété permet d'ajouter des propriétés à tous les objets ArrayBuffer.
+
+ +

Méthodes

+ +
+
{{jsxref("ArrayBuffer.isView", "ArrayBuffer.isView(arg)")}}
+
Cette méthode renvoie true si arg est une des vues sur l'ArrayBuffer telle qu'un tableau typé ou un objet {{jsxref("DataView")}}, sinon elle renvoie false.
+
{{jsxref("ArrayBuffer.transfer", "ArrayBuffer.transfer(ancienTampon [, nouvelleLongueur])")}} {{experimental_inline}}
+
+
Cette méthode renvoie un nouvel objet ArrayBuffer dont le contenu est transféré depuis les données de ancienTampon et qui est ensuite tronqué ou rallongé avec des zéros pour que la taille du nouveau tampon soit nouvelleLongueur.
+
+
+ +

Les instances d'ArrayBuffer

+ +

Toutes les instances d'ArrayBuffer héritent de {{jsxref("ArrayBuffer.prototype")}}.

+ +

Propriétés

+ +

{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/prototype','Propri.C3.A9t.C3.A9s')}}

+ +

Méthodes

+ +

{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/prototype','M.C3.A9thodes')}}

+ +
+
{{jsxref("ArrayBuffer.slice()")}} {{non-standard_inline}}
+
Cette méthode fournit la même fonctionnalité que {{jsxref("ArrayBuffer.prototype.slice()")}}.
+
+ +

Exemple

+ +

Dans cet exemple, on crée un tampon sur 8 octets avec une vue {{jsxref("Int32Array")}} qui fait référence à ce tampon :

+ +
var tampon = new ArrayBuffer(8);
+var vue    = new Int32Array(tampon);
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Remplacée par ECMAScript 6.
{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}{{Spec2('ES6')}}Définition initiale au sein d'un standard ECMA. new est obligaoire pour utiliser le constructeur.
{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.ArrayBuffer")}}

+ +

Notes de compatibilité

+ +

À partir d'ECMAScript 2015 (ES6), ArrayBuffer doit être utilisée avec {{jsxref("Opérateurs/L_opérateur_new", "new")}}. Appeler un constructeur ArrayBuffer comme une fonction, sans new, provoquera une exception {{jsxref("TypeError")}}.

+ +
var dv = ArrayBuffer(10);
+// TypeError: calling a builtin ArrayBuffer constructor
+// without new is forbidden
+ +
var dv = new ArrayBuffer(10);
+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/isview/index.html b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/isview/index.html new file mode 100644 index 0000000000..990b6b6d62 --- /dev/null +++ b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/isview/index.html @@ -0,0 +1,90 @@ +--- +title: ArrayBuffer.isView() +slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/isView +tags: + - ArrayBuffer + - JavaScript + - Méthode + - Reference + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView +--- +
{{JSRef}}
+ +

La méthode ArrayBuffer.isView() renvoie true si l'argument passé est une des vues ArrayBuffer, comme par exemple un tableau typé ou une {{jsxref("DataView")}} ; false sinon.

+ +
{{EmbedInteractiveExample("pages/js/arraybuffer-isview.html")}}
+ + + +

Syntaxe

+ +
ArrayBuffer.isView(arg)
+ +

Paramètres

+ +
+
arg
+
L'argument dont on souhaite savoir s'il est une vue.
+
+ +

Valeur de retour

+ +

true si la valeur passée en argument est une des vues du tableau ArrayBuffer, false sinon.

+ +

Exemples

+ +
ArrayBuffer.isView();                    // false
+ArrayBuffer.isView([]);                  // false
+ArrayBuffer.isView({});                  // false
+ArrayBuffer.isView(null);                // false
+ArrayBuffer.isView(undefined);           // false
+ArrayBuffer.isView(new ArrayBuffer(10)); // false
+
+ArrayBuffer.isView(new Uint8Array());    // true
+ArrayBuffer.isView(new Float32Array());  // true
+ArrayBuffer.isView(new Int8Array(10).subarray(0, 3)); // true
+
+var buffer = new ArrayBuffer(2);
+var dv = new DataView(buffer);
+ArrayBuffer.isView(dv); // true
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Remplacée par ECMAScript 2015
{{SpecName('ES2015', '#sec-arraybuffer.isview', 'ArrayBuffer.isView')}}{{Spec2('ES2015')}}Définition initiale dans un standard ECMA.
{{SpecName('ESDraft', '#sec-arraybuffer.isview', 'ArrayBuffer.isView')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.isView")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/prototype/index.html b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/prototype/index.html new file mode 100644 index 0000000000..8c41cede9d --- /dev/null +++ b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/prototype/index.html @@ -0,0 +1,69 @@ +--- +title: ArrayBuffer.prototype +slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/prototype +tags: + - ArrayBuffer + - JavaScript + - Propriété + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer +--- +
{{JSRef}}
+ +

La propriété ArrayBuffer.prototype représente le prototype de l'objet {{jsxref("ArrayBuffer")}}.

+ +
{{js_property_attributes(0,0,0)}}
+ +

Description

+ +

Les instances de ArrayBuffer héritent toutes de ArrayBuffer.prototype. Il est donc possible de modifier le protoype du constructeur pour apporter des changements à chacune des instances ArrayBuffer.

+ +

Propriétés

+ +
+
ArrayBuffer.prototype.constructor
+
Définit la fonction qui crée le prototype d'un objet. La valeur initiale correspond au constructeur natif ArrayBuffer.
+
{{jsxref("ArrayBuffer.prototype.byteLength")}} {{readonlyInline}}
+
La taille du tableau en octets. Cette propriété est déterminée lors de la construction du tableau et ne peut pas être changée. Propriété en lecture seule.
+
+ +

Méthodes

+ +
+
{{jsxref("ArrayBuffer.prototype.slice()")}}
+
Renvoie un nouvel ArrayBuffer dont le contenu est une copie des octets contenus dans l'objet ArrayBuffer depuis begin (compris), jusqu'à end (non-compris). Si begin ou end est négatif, cela fait référence à l'indice à partir de la fin du tableau et non à l'indice à partir du début du tableau.
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('ES6', '#sec-arraybuffer.prototype', 'ArrayBuffer.prototype')}}{{Spec2('ES6')}}Définition initiale.
{{SpecName('ESDraft', '#sec-arraybuffer.prototype', 'ArrayBuffer.prototype')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.prototype")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/slice/index.html b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/slice/index.html new file mode 100644 index 0000000000..c34eb843d5 --- /dev/null +++ b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/slice/index.html @@ -0,0 +1,88 @@ +--- +title: ArrayBuffer.prototype.slice() +slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/slice +tags: + - ArrayBuffer + - JavaScript + - Méthode + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice +--- +
{{JSRef}}
+ +

La méthode slice() renvoie un nouvel ArrayBuffer dont le contenu est une copie des octets du ArrayBuffer courant, contenus entre début (compris) et fin (non-compris).

+ +
{{EmbedInteractiveExample("pages/js/arraybuffer-slice.html")}}
+ + + +

Syntaxe

+ +
arraybuffer.slice(début[, fin])
+ +

Paramètres

+ +
+
début
+
Indice (numérotation commençant à zéro) de l'octet à partir duquel découper le tableau.
+
+ +
+
fin
+
Indice de l'octet auquel finir la découpe du tableau. Si ce paramètre n'est pas fourni, le nouvel ArrayBuffer contiendra tous les octets entre début et la fin du ArrayBuffer courant. L'intervalle défini par les valeurs début et fin est réduit à un intervalle valide pour le tableau courant si nécessaire. Si la longueur du nouveau tableau ArrayBuffer sera négative, l'intervalle est réduit à zéro.
+
+ +

Valeur de retour

+ +

Un nouvel objet ArrayBuffer.

+ +

Description

+ +

La méthode slice copie les octets contenus jusqu'au (au sens exclusif) paramètre fin. Si le paramètre début ou  fin est négatif, il fera référence à l'indice à partir de la fin du tableau et non pas à l'indice à partir du début du tableau.

+ +

Exemples

+ +

Copier un ArrayBuffer

+ +
var buf1 = new ArrayBuffer(8);
+var buf2 = buf1.slice(0)
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Remplacée dans EMCAScript 6.
{{SpecName('ES6', '#sec-arraybuffer.prototype.slice', 'ArrayBuffer.prototype.slice')}}{{Spec2('ES6')}}Définition initiale au sein d'un standard ECMA.
{{SpecName('ESDraft', '#sec-arraybuffer.prototype.slice', 'ArrayBuffer.prototype.slice')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.slice")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html new file mode 100644 index 0000000000..0d13e6aa38 --- /dev/null +++ b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html @@ -0,0 +1,100 @@ +--- +title: ArrayBuffer.transfer() +slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/transfer +tags: + - ArrayBuffer + - Experimental + - JavaScript + - Méthode + - Reference + - TypedArrays + - polyfill +translation_of: Archive/Web/JavaScript/ArrayBuffer.transfer +--- +
{{JSRef}}{{SeeCompatTable}}
+ +

La méthode statique ArrayBuffer.transfer() renvoie un nouvel objet ArrayBuffer dont le contenu a été transféré depuis les données d'ancienBuffer et qui est soit tronqué soit complété avec des zéros pour que la longueur du nouvel objet soit égale à nouvelleLongueur. Si nouvelleLongueur vaut undefined, on utilisera la propriété byteLength de l'ancienBuffer. Cette opération fait que ancienBuffer sera dans un état détaché.

+ +

Syntaxe

+ +
ArrayBuffer.transfer(ancienBuffer [, nouvelleLongueur]);
+ +

Paramètres

+ +
+
ancienBuffer
+
Un objet {{jsxref("ArrayBuffer")}} à partir duquel on souhaite transférer des données.
+
nouvelleLongueur
+
La longueur, exprimée en octets, du nouvel objet ArrayBuffer.
+
+ +

Valeur de retour

+ +

Un nouvel objet ArrayBuffer.

+ +

Description

+ +

La méthode ArrayBuffer.transfer() permet d'agrandir et de détacher des objets ArrayBuffer. Le fait de pouvoir agrandir un ArrayBuffer sans effectuer de copie permet d'être beaucoup plus efficace sur les grands buffers (comme pour realloc). Le fait de pouvoir détacher un ArrayBuffer permet au développeur d'avoir un contrôle explicite sur la mémoire sous-jacente et sa libération. Cela permet d'éviter d'avoir à libérer toutes les références et d'attendre le travail du ramasse-miettes.

+ +

Exemples

+ +
var buf1 = new ArrayBuffer(40);
+new Int32Array(buf1)[0] = 42;
+
+var buf2 = ArrayBuffer.transfer(buf1, 80);
+buf1.byteLength; // 0 (attention, avec la prothèse, la valeur sera toujours 40)
+buf2.byteLength; // 80
+new Int32Array(buf2)[0]; // 42
+
+var buf3 = ArrayBuffer.transfer(buf2, 0);
+buf2.byteLength; // 0 (attention, avec la prothèse, la valeur sera toujours 80)
+buf3.byteLength; // 0
+
+ +

Prothèse d'émulation (polyfill)

+ +

Ce fragment de code permet d'obtenir la plupart des fonctionnalités de transfer() dans un environnement qui ne le prend pas en charge nativement. Attention, cela ne correspond pas exactement à l'API mais permet de transférer des données d'un ArrayBuffer vers un autre.

+ +
if (!ArrayBuffer.transfer) {
+    ArrayBuffer.transfer = function(source, length) {
+        if (!(source instanceof ArrayBuffer))
+            throw new TypeError('Source must be an instance of ArrayBuffer');
+        if (length <= source.byteLength)
+            return source.slice(0, length);
+        var sourceView = new Uint8Array(source),
+            destView = new Uint8Array(new ArrayBuffer(length));
+        destView.set(sourceView);
+        return dest.buffer;
+    };
+}
+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
Proposition pour ArrayBuffer.prototype.transferBrouillonBrouillon de niveau 2
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.ArrayBuffer.transfer")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf