LObjet ArrayBuffer
P o u r D é b u t a n t
JAVASCRIPT
(Programmation Internet)
VOL. XXII
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 995624714 - 902263541 - 813572818
diasfb@mail2world.com
LOBJET ARRAYBUFFER :
Un objet particulier en JavaScript c’est le « ArrayBuffer » (littéralement
« tampon de tableau »). C’est un espace-mémoire qu’on réserve pour des
éléments d’Arrays typées et de taille connue.
<script type="text/javascript"> "use strict";
// create an ArrayBuffer with a size in bytes
const buffer = new ArrayBuffer(10);
// Réserver 10 places en Bytes ds ArrayBuffer
console.log(buffer);
console.log(buffer.byteLength);
const uint8 = new Uint8Array(buffer, 3);
// Réserver des places pour des entiers non
// signés dans ArrayBuffer depuis l'offset 4
console.log(uint8);
console.log(uint8.byteLength);
uint8.fill(Math.round(Math.random()*10));
// Remplir tous les Bytes réservés
console.log(uint8);
</script>
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
LObjet ArrayBuffer
- 2/15 - vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
LObjet ArrayBuffer
- 3/15 - vendredi, 31. mai 2019 (11:35 )
Exemple :
<script type="text/javascript">
// var buffer = new ArrayBuffer(10);
// var float32 = new Float32Array(buffer);
// Avec YANDEX : Uncaught RangeError:
// byte length of Float32Array should be a multiple of 4
// at new Float32Array (<anonymous>) at test.html:3
//
// Avec Firefox : RangeError:
// attempting to construct out-of-bounds TypedArray
// on ArrayBuffer test.html:3:16
var buffer = new ArrayBuffer(12);
console.log("buffer = new ArrayBuffer(12) =",buffer);
console.log("buffer.toString() =",buffer.toString());
console.log("Object.getOwnPropertyDescriptors(buffer) =",
Object.getOwnPropertyDescriptors(buffer));
console.log("");
var float32 = new Float32Array(buffer);
console.log("float32 = new Float32Array(buffer) =",
float32);
console.log("float32.byteLength =",float32.byteLength);
console.log("float32.length =",float32.length);
console.log("float32.buffer.byteLength=",
float32.buffer.byteLength);
</script>
Exécution avec YANDEX :
buffer = new ArrayBuffer(12) = ArrayBuffer(12) {}
test.html:16
buffer.toString() = [object ArrayBuffer]
test.html:17
Object.getOwnPropertyDescriptors(buffer) = {}
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
LObjet ArrayBuffer
- 4/15 - vendredi, 31. mai 2019 (11:35 )
test.html:23
float32 = new Float32Array(buffer) =
Float32Array(3) [0, 0, 0]
test.html:25 float32.byteLength = 12
test.html:26 float32.length = 3
test.html:28 float32.buffer.byteLength= 12
test.html:15 buffer = new ArrayBuffer(12) = ArrayBuffer(12) {}
1. ArrayBuffer(12) {}
1. [[Int8Array]]: Int8Array(12) [0,0,0,0,0,0,0,0,0,0,0,0]
2. [[Int16Array]]: Int16Array(6) [0, 0, 0, 0, 0, 0]
3. [[Int32Array]]: Int32Array(3) [0, 0, 0]
1. 0: 0
2. 1: 0
3. 2: 0
4. buffer: (...)
5. byteLength: (...)
6. byteOffset: (...)
7. length: (...)
8. Symbol(Symbol.toStringTag): (...)
9. __proto__: TypedArray
1. BYTES_PER_ELEMENT: 4
2. buffer: (...)
3. byteLength: (...)
4. byteOffset: (...)
5. constructor: ƒ Int32Array()
6. length: (...)
7. Symbol(Symbol.toStringTag): (...)
8. __proto__: Object
4. [[Uint8Array]]: Uint8Array(12) [0,0,0,0,0,0,0,0,0,0,0,0]
5. byteLength: (...)
6. __proto__: ArrayBuffer
1. byteLength: (...)
2. constructor: ƒ ArrayBuffer()
1. arguments: (...)
2. caller: (...)
3. isView: ƒ isView()
4. length: 1
5. name: "ArrayBuffer"
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
LObjet ArrayBuffer
- 5/15 - vendredi, 31. mai 2019 (11:35 )
6. proto-
type: ArrayBuffer {constructor: ƒ, slice: ƒ, Symb
ol(Symbol.toStringTag): "ArrayBuffer"}
7. Symbol(Symbol.species): (...)
8. get Symbol(Symbol.species): ƒ [Symbol.species]()
9. __proto__: ƒ ()
10. [[Scopes]]: Scopes[0]
3. slice: ƒ slice()
4. Symbol(Symbol.toStringTag): "ArrayBuffer"
5. get byteLength: ƒ byteLength()
6. __proto__: Object
test.html:23 float32 = new Float32Array(buffer) =
Float32Array(3) [0, 0, 0]
1. Float32Array(3) [0, 0, 0]
1. 0: 0
2. 1: 0
3. 2: 0
4. buffer: (...)
5. byteLength: (...)
6. byteOffset: (...)
7. length: (...)
8. Symbol(Symbol.toStringTag): (...)
9. __proto__: TypedArray
1. BYTES_PER_ELEMENT: 4
2. buffer: (...)
3. byteLength: (...)
4. byteOffset: (...)
5. constructor: ƒ Float32Array()
6. length: (...)
7. Symbol(Symbol.toStringTag): (...)
8. __proto__: Object
Exécution Avec FireFox :
buffer = new ArrayBuffer(12) = ArrayBuffer { byteLength: 12 }
test.html:15:5
1 / 15 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !