III. Le typecasting : 1. Dans les opérations arithmétiques (outre l’addition = concaténa-tion) les chaînes sont converties ("implied typecasting) en nombres : 25 - "10" = 15 ; 25 * "10" = 250 ; 25 / "10" = 2.5... 2. Dans les opérations de concaténation (toute addition impliquant une chaîne de caractères) ce sont les autres types qui sont conver-tis en chaîne de caractères. 3. Dans l’addition d’un nombre et une string, le nombre est coercé en string : 25 + "10" = "2510". 4. Dans l’addittion d’un Boolean et une string, le Boolean est coercé en string : true + "false" = "truefalse". 5. Dans l’addition d’un nombre et un Boolean, le Boolean est coercé en nombre : true + 10 = 11 ; false + 10 = 10. 6. Dans les opérations de comparaison, les strings (chaînes) sont coercées en nombres : 10 < "050" = true.
Le type Number J AVA S C R I P T(Programmation Internet)V O L . I I I Po u r D é b u t e r J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga +243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818 La dernière révision de ce texte est disponible sur CD.
Le type «number» possède exactement 64 53 18’437’736’874’454’810’627 (2 - 2 + 3) valeurs double-précision 64-bit format IEEE 754-2008.
Number.isFinite = function isFinite()test.html:14:4Number.isInteger = function isInteger()test.html:16:4Number.isNaN = function isNaN()test.html:18:4Number.isSafeInteger = function isSafeInteger()test.html:19:4(2.5e-324)*1 = 5e-324test.html:21:4(2.4e-324)*1 = 0test.html:22:4
On peut aussi obtenir ces résultats avec la commande
«Object.getOwnPropertyDescriptors(Number)»
qui donne ceci à la console du browser ou dans un code JS.
DIASOLUKA Nz.Luyalu/ 38 Sunday 24 March 2019 5 (18:06 a3/p3)
I.LeNaN (Not a Number) :
Le type Number
Quelques types de données sont très diïciles à se îgurer :
1.null :que souvent vous (rarement le valeur système) aectez explicitement à une variable pour l’initialiser àRIEN, juste pour éviter qu’elle ait automatiquement la valeurundeîned.
2.Undeîned :que prend automatiquement Valeur une variable quand elle n’est pas explicitement initialisée (même pas avecnull) lors de sa déclaration.
3.NaN (number value that is a IEEE 754 “Not-a-Number” value): Il faut d’abord savoir qu’il n’y a pas un nombre particulier, précis représentant le NaN.DansIEEE 754, NaN est déîni commetout nombre à virguleottante donttous les bits d’exposant (exponent bits) sont à 1 etla partie fractionnaire (fractional part) ayant n’importe quelle valeur diérente de zéro(any non-zero value). Donc on peut bien avoirNaN !==NaN.
II.Laprécédence (préséance) des opérateurs, exemple illustratif :
2. Dans les opérations de concaténation (toute addition impliquant une chane de caractères) ce sont les autres types qui sont convertis en chane de caractères.
3. Dans l’addition d’un nombre et une string, le nombre est coercé en string :25 + "10" = "2510". 4. Dans l’addittion d’un Boolean et une string, le Boolean est coercé en string :true + "false" = "truefalse".
DIASOLUKA Nz.Luyalu 7 Sunday 24 March 2019/ 38 (18:06 a3/p3)
Le type Number
5. Dans l’addition d’un nombre et un Boolean, le Boolean est coercé en nombre :true + 10 = 11 ; false + 10 = 10.
6. Dans les opérations de comparaison, les strings (chanes) sont coercées en nombres :10 < "050" = true.
1. La fonctionparseInt()excplicitement un covertit numérique littéral en entier, 2. La fonctionparseFloat()covertit excplicitement un numérique littéral en nombre
Le numérique littéral doit être au début de la chane.
<scripttype="text/javascript">"use strict"; vari ="1980 mille neuf cent quatre-vingt"; varf ="19.80 dix-neuf point quatre-vingt";
DIASOLUKA Nz.LuyaluSunday 24 March 2019 9 / 38 (18:06 a3/p3)
Le type Number
console.log(i);// 1980 mille neuf cent quatre-vingt console.log(f);// 19.80 dix-neuf point quatre-vingt console.log(parseInt(i));// 1980 console.log(parseFloat(i));// 1980 console.log(parseInt(f));// 19 console.log(parseFloat(f));// 19.8 </script>
Aïchage en nombre des chires signiîcatifs (nnn.ddd...) :