javascript - l'objet arraybuffer

publicité
L’Objet ArrayBuffer
Pour Débutant
J AVA S C R I P T (Programmation Internet) V O L . X X I I
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 995624714 - 902263541 - 813572818
[email protected]
L’OBJET 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
L’Objet ArrayBuffer
- 2/15 -
JavaScript Tome-XXII
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
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) = {}
L’Objet ArrayBuffer
- 3/15 -
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
test.html:23
float32 = new Float32Array(buffer) =
Float32Array(3) [0, 0, 0]
test.html:25
test.html:26
test.html:28
float32.byteLength = 12
float32.length = 3
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.
2.
3.
4.
5.
6.
7.
8.
9.
0: 0
1: 0
2: 0
buffer: (...)
byteLength: (...)
byteOffset: (...)
length: (...)
Symbol(Symbol.toStringTag): (...)
__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"
L’Objet ArrayBuffer
- 4/15 -
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
3.
4.
5.
6.
JavaScript Tome-XXII
6. prototype: 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]
slice: ƒ slice()
Symbol(Symbol.toStringTag): "ArrayBuffer"
get byteLength: ƒ byteLength()
__proto__: Object
test.html:23
float32
Float32Array(3) [0, 0, 0]
=
new
Float32Array(buffer)
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
L’Objet ArrayBuffer
- 5/15 -
vendredi, 31. mai 2019 (11:35 )
=
J.D.B. DIASOLUKA Nz. Luyalu
buffer.toString() = [object ArrayBuffer]
test.html:16:5
JavaScript Tome-XXII
Object.getOwnPropertyDescriptors(buffer) = Object { }
test.html:17:5
float32 = new Float32Array(buffer) = Float32Array(3) [0, 0, 0]
test.html:23:5
float32.byteLength = 12
float32.length = 3
float32.buffer.byteLength= 12
test.html:25:5
test.html:26:5
test.html:27:2
buffer = new ArrayBuffer(12) = ArrayBuffer { byteLength: 12 }
test.html:15:5
ArrayBuffer { byteLength: 12 }
ArrayBuffer
byteLength: 12
<prototype>: ArrayBufferPrototype { … }
byteLength: Getter
constructor: function ArrayBuffer()
slice: function slice()
Symbol(Symbol.toStringTag): "ArrayBuffer"
<prototype>: Object { … }
Object.getOwnPropertyDescriptors(buffer) = Object { }
test.html:17:5
{}
<prototype>: Object { … }
__defineGetter__: function __defineGetter__()
__defineSetter__: function __defineSetter__()
__lookupGetter__: function __lookupGetter__()
__lookupSetter__: function __lookupSetter__()
constructor: function Object()
hasOwnProperty: function hasOwnProperty()
isPrototypeOf: function isPrototypeOf()
propertyIsEnumerable:
function propertyIsEnumerable()
L’Objet ArrayBuffer
- 6/15 -
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
toLocaleString: function toLocaleString()
toSource: function toSource()
toString: function toString()
valueOf: function valueOf()
float32 = new Float32Array(buffer) = Float32Array(3) [0, 0, 0]
test.html:23:5
Float32Array(3)
0: 0
1: 0
2: 0
buffer: ArrayBuffer { byteLength: 12 }
byteLength: 12
byteOffset: 0
length: 3
<prototype>: Float32ArrayPrototype { … }
Structure interne d’un « ArrayBuffer » en tapant ce mot à la ligne de
commande de la console du navigateur :
Avec Firefox :
L’Objet ArrayBuffer
- 7/15 -
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Avec Yandex :
L’Objet ArrayBuffer
- 8/15 -
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
L’Objet ArrayBuffer
- 9/15 -
JavaScript Tome-XXII
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Kinshasa, le vendredi, 31. mai 2019 (11:35 ).
L’Objet ArrayBuffer
- 10/15 -
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
L’Objet ArrayBuffer
- 11/15 -
JavaScript Tome-XXII
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Mots-clés :
Arrays typées, ArrayBuffer, Set, String, Typed Array, Array Typée,
Uint8Array, Uint16Array, Uint32Array, Int8Array, Int16Array, Int32Array,
Float32Array, Float64Array, Arrays, Array, slice, subarray, tampon de tableau, initialiseur, Object literal, littéral d’objet, entries, values, paradigme
DIASOLUKA Nz. Luyalu
Docteur en Médecine, Chirurgie & Accouchements (1977),
CNOM : 0866 - Spécialiste en ophtalmologie (1980)
Études humanités : Scientifique - Mathématiques & Physique.
Informaticien-amateur, Programmeur et WebMaster.
Chercheur indépendant, autonome et autofinancé,
bénévole, sans aucun conflit d’intérêt ou liens
d'intérêts ou contrainte promotionnelle avec qui qu’il
soit ou quelqu’organisme ou institution / organisation
que ce soit, étatique, paraétatique ou privé, industriel
ou commercial en relation avec le sujet présenté.
+243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818
[email protected]
Autre Lecture :
https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-LaCreation
L’Objet ArrayBuffer
- 12/15 -
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
D’autres publications pouvant aussi intéresser :
• https://www.scribd.com/document/377036251/LeDosage-Des-Medicaments-en-Cac-Cas
• https://www.scribd.com/document/377035454/LeHasard-Des-Thermometres-Non-contact-a-Infrarouge
• https://www.scribd.com/document/376222482/PetiteIntroduction-Aux-Fonctions-JavaScript
• https://www.scribd.com/document/376221919/La-Foien-Jesus-Christ-Pour-Quoi-Faire
• https://www.scribd.com/document/375689778/Lacuitevisuelle-angulaire
• https://www.scribd.com/document/375349851/Lavariable-This
•
https://www.scribd.com/document/375024162/FonctionsImbriquees-en-JS
• https://www.scribd.com/document/374789297/FormatInterne-Des-Objets-JavaScript
•
https://www.scribd.com/document/374788758/Iterationsen-JavaScript
• https://www.scribd.com/document/374738470/Le-PlusGrand-Secret-de-La-Creation
• https://www.scribd.com/document/374597969/NouvelleFormule-d-IMC-indice-de-doduite-Selon-Dr-Diasoluka
• https://www.scribd.com/document/373847209/PropertyDescriptors
• https://www.scribd.com/document/373833282/l-ObjetL’Objet ArrayBuffer
- 13/15 -
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Global-Window
•
https://www.scribd.com/document/372665249/JavascriptTome-II
• https://www.scribd.com/document/355291488/motiliteoculaire-2
• https://www.scribd.com/document/355291239/motiliteoculaire-I
• https://www.scribd.com/document/355290248/Script-dAnalyses-Des-Reflexes-Pupillomoteurs
•
https://www.scribd.com/document/321168468/Renseigne
ments-Id-et-Anthropometriques
•
https://www.scribd.com/document/320856721/Emission31-Jul-2016
•
https://www.scribd.com/document/318182982/Complicati
on-Visuelle-du-Traitement-de-La-Malaria
• https://www.scribd.com/document/318180637/RapportEntre-Oxymetrie-Et-Type-Respiration
•
https://www.scribd.com/document/315746265/Classificati
on-Des-Medicaments
•
https://www.scribd.com/document/315745909/Incongruen
ces-Heresies-et-Heterodoxies-de-la-Notion-deLaboratoire
• https://www.scribd.com/document/315745725/RapportL’Objet ArrayBuffer
- 14/15 -
vendredi, 31. mai 2019 (11:35 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Entre-Oxymetrie-Et-Type-Respiration
L’Objet ArrayBuffer
- 15/15 -
vendredi, 31. mai 2019 (11:35 )
Téléchargement