Différents types d arrays en javascript
80 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
80 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

D’abord il faut savoir que « TypedArray » n’est pas un type de données ou un objet défini, mais une appellation générique.
Les Typed Arrays (Arrays typés) traitent tous leurs éléments constitutifs comme étant de leur propre type donc d’un même type, contrairement aux Arrays ordinaires qui peuvent regrouper toute sorte de types. Les deux groupes principaux d’Arrays typées sont :

Informations

Publié par
Publié le 24 mars 2019
Nombre de lectures 0
Langue Français

Extrait

D ifé re nt sTy p e sd ' arr ay s
(objets semblables aux tableaux)
JAVA S C R I P T(Programmation Internet)VO L .X X I I
Po u rD é b u t a n t
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 995624714 - 902263541
813572818
diasfb@mail2world.com

Qu’est-ce qui se passe quand vous appliquez un «OR
binaire» par exemple au nombre «3000000000.1»
comme ceci :

3000000000.1 | 0?

Ça donnera

3000000000.1 | 0 =-1294967296

Vous y comprenez quelque chose? Le code ci-après vous
l’explique très facilement grâce auxUintXArray,
IntXArray,FloatXArray brefce qui est convenu d’appeler
Typed Array.

Il existe en efet deux types fondamentaux d’Arrays: les
Arrays ordinaires et les ainsi dits «Typed Arrays» qui se
rapportent auxnombres typésdontBigIntetloat32
selon le navigateur.

J.D.B. DIASOLUKA Nz.Luyalu JavaScript
Tome-XXII
LES « YA SA RRTEDYP » :

D’abord il faut savoir que «TypedArray» n’est pas un type
de données ou un objet déini, mais une appellation
générique.

LesTyped Arrays (Arrays typés)traitent tous leurs
éléments constitutifs comme étant de leur propre type donc
d’un même type, contrairement aux Arrays ordinaires qui
peuvent regrouper toute sorte de types. Les deux groupes
principaux d’Arrays typéessont :

I.

Pour les entiers (« int ») :
1. LesArrays Signées([Signed] Integer Arrays)
dont les éléments sont traités comme des nombres
signés (le bit d’extrême gauche étant considéré
comme étant le lag du signe) : lesIntXArray

2. LesArrays Non Signées(Unsigned Integer
Arrays) dont tous les bits sont considérés comme
pondérant le nombre : lesUintXArray.

Dans les deux cas ci-dessus, «X» peut avoir l’une des
valeurs suivantes :8, 16, 32.

Dans le deuxième type (Arrays Non Signées[Unsigned
Integer Arrays]) existe en outre unTyped Array
«Uint8ClampedArray »dont les éléments sont considérés
comme étant des «entiers 8bits non signés» (de la taille
d’un octet) et dont la valeur est plafonnée à255: toute
valeur d’élément supérieur à 255 est automatiquement
ramenée à 255.

Il n’existe pas encore leInt64Arrayni leUint64Array,
mais certains browsers comme leYandex Version
18.9.1.954proposent les typesBigInt64Arrayet

Diférents types d’Arraysmercredi, 20. février -2/80
2019 (6:47 )

J.D.B. DIASOLUKA Nz.Luyalu JavaScript
Tome-XXII
BigUint64Array, qui n’existent pas dansFirefox Quantum
57.0.

II.

Pour les rationnels (« loat ») il existe :

« Float32Array »et« Float64Array ».

<script type="text/javascript"> "use strict";
// letbI = BigInt(-1)
//PourFIREFOX : ReferenceError:
//BigInt isnot deinedtest.html:6:7
// console.log("BigInt(-1) =",bI);

// letf32 = loat32(-1)
//PourFIREFOX : ReferenceError:
//loat32 isnot deined
// console.log("loat32(-1) =",f32);

console.log(".!. ATTENTION .!.")
let m=3000000000.1
console.log(m+" | 0 = ", m | 0);

(function(){
let b=null;
console.log("Parce que En DOUBLE-WORD (32 bits) : ")
console.log(m +"d = "+ (b=m.toString(2))+"b");
console.log("10110010110100000101111000000000b =");
console.log(
"1011'0010''1101'0000'''0101'1110''0000'0000b = ",
m|0 + "d");
console.log(
"Notez le bit (ou lag) du signe qui est à 1.");
}
)();

console.log("".padEnd(3,"\n"));
console.log("ES10 n'utilise pas encore le 64 bits : ")

Diférents types d’Arrays -mercredi, 20. février3/80
2019 (6:47 )

J.D.B. DIASOLUKA Nz.Luyalu JavaScript
Tome-XXII
m=new Uint8Array ([3000000000.1])
console.log("Uint8Array ([30000000000.1]) = "+m.toString());

m=new Uint16Array ([3000000000.1])
console.log(
"Uint16Array ([30000000000.1]) = "+m.toString());

m=new Uint32Array ([3000000000.1])
console.log(
"Uint32Array ([30000000000.1]) = "+m.toString());

console.log("");

m=new Uint8ClampedArray ([3000000000.1])
console.log(
"Uint8ClampedArray ([30000000000.1]) = "+m.toString());

console.log("");

m=new Int8Array ([3000000000.1])
console.log("Int8Array ([30000000000.1]) = "+m.toString());

m=new Int16Array ([3000000000.1])
console.log("Int16Array ([30000000000.1]) = "+m.toString());

m=new Int32Array ([3000000000.1])
console.log("Int32Array ([30000000000.1]) = "+m.toString());

console.log("");

m=new Float32Array ([3000000000.1])
console.log(
"Float32Array ([30000000000.1]) = "+m.toString());

m=new Float64Array ([3000000000.1])
console.log(
"Float64Array ([30000000000.1]) = "+m.toString());

console.log("");

// m=newBigInt64Array ([3000000000])

Diférents types d’Arrays -4/80 -mercredi, 20. février
2019 (6:47 )

J.D.B. DIASOLUKA Nz.Luyalu JavaScript
Tome-XXII
//PourFIREFOX : ReferenceError:
//BigInt64Arrayis not deined
//([30000000000]) = "+m.toString()); console.log("BigInt64Array

// m=newBigUint64Array([3000000000])
//PourFIREFOX :ReferenceError:
//BigUint64Array is notdeined
// console.log("BigUint64Array([30000000000]) = "+m.toString());
</script>

Exécution avec YANDEX :

test.html:5

test.html:12

test.html:14

test.html:18

BigInt(-1) = -1n

.!. ATTENTION .!.

3000000000.1 | 0 =-1294967296

Parce que En DOUBLE-WORD (32 bits) :

test.html:19 3000000000.1d =
10110010110100000101111000000000.000110011001100110011b

test.html:20 10110010110100000101111000000000b=
test.html:21
1011'0010''1101'0000'''0101'1110''0000'0000b=
-1294967296
test.html:24 Notezle bit (ou lag) du signe qui est à 1.

test.html:30

test.html:31
test.html:34
test.html:37
test.html:40
test.html:42
test.html:45

ES10 n'utilise pas encore le 64 bits :
Uint8Array ([30000000000.1])= 0
Uint16Array ([30000000000.1]) = 24064
Uint32Array ([30000000000.1]) = 3000000000

Uint8ClampedArray ([30000000000.1]) = 255

Diférents types d’Arrays5/80 - -mercredi, 20. février
2019 (6:47 )

J.D.B. DIASOLUKA Nz.Luyalu JavaScript
Tome-XXII
test.html:47
test.html:50 Int8Array([30000000000.1]) = 0
test.html:53 Int16Array([30000000000.1]) = 24064
test.html:56 Int32Array([30000000000.1]) = -1294967296
test.html:58
test.html:61 Float32Array([30000000000.1]) = 3000000000
test.html:64 Float64Array([30000000000.1]) = 3000000000.1

Exécution avec FIREFOX :

.!. ATTENTION .!.

3000000000.1 | 0 =-1294967296

test.html:12:3

test.html:14:3

Parce que En DOUBLE-WORD (32 bits) :test.html:18:8
3000000000.1d =
10110010110100000101111000000000.000110011001100110011b

10110010110100000101111000000000b =
1011'0010''1101'0000'''0101'1110''0000'0000b =-1294967296

Notez le bit (ou lag) du signe qui est à 1.
test.html:21:8

ES10 n'utilise pas encore le 64 bits :

test.html:31:4

Uint8Array ([30000000000.1])= 0test.html:34:4
Uint16Array ([30000000000.1]) = 24064test.html:37:4
Uint32Array ([30000000000.1]) = 3000000000test.html:40:4

Uint8ClampedArray ([30000000000.1]) = 255

Int8Array ([30000000000.1])= 0
Int16Array ([30000000000.1]) = 24064
Int32Array ([30000000000.1]) = -1294967296

Float32Array([30000000000.1]) = 3000000000

test.html:45:4

test.html:50:4
test.html:53:4
test.html:56:4

test.html:61:4

Diférents types d’Arrays6/80 -mercredi, 20. février
2019 (6:47 )

J.D.B. DIASOLUKA Nz.Luyalu JavaScript
Tome-XXII
Float64Array ([30000000000.1]) = 3000000000.1
test.html:64:4

LesUintxArray etIntxArray sontdes exemples d’Arrays
qui signiient en l’occurrence «Unsigned Integer xBytes
Array» ou «Array d’entiers Non-Signés à x Bytes», et
«[Signed] Integer xBytes Array» ou «Array d’entiers
Signés à x Bytes», x étant un nombre parmi ceux-ci :8 , 16
ou 32.

TypedArray objects

Type

Int8Array

Uint8Array

Uint8Clamped
Array

Int16Array

Value
Range

-128 to
127

0 to 255

0 to 255

-32768 to
32767

Size
in
byt
es

1

1

1

2

Descripti
on

8-bit two's
compleme
nt signed
integer

8-bit
unsigned
integer

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents