Le Type Number en JavaScript
38 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
38 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

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.

Sujets

Informations

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

Extrait

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.
Voici quelquesconstantes remarquables:
<script> console.log("Number.EPSILON = "+Number.EPSILON); console.log("Number.MAX_VALUE = "+Number.MAX_VAL UE); console.log("Number.MIN_VALUE = "+Number.MIN_VALU E); console.log("Number.MAX_SAFE_INTEGER = ", Number.MAX_SAFE_INTEGER); console.log("Number.MIN_SAFE_INTEGER = ", Number.MIN_SAFE_INTEGER); console.log("Number.NEGATIVE_INFINITY = ", Number.NEGATIVE_INFINITY); console.log("Number.NaN = "+Number.NaN); console.log("Number.POSITIVE_INFINITY= ", Number.POSITIVE_INFINITY); console.log("Number.isFinite = ", Number.isFinite); console.log("Number.isInteger= ", Number.isInteger); console.log("Number.isNaN = ",Number.isNaN); console.log("Number.isSafeInteger= ", Number.isSafeInteger);
Le type Number
console.log("(2.5e-324)*1 =",(2.5e-324)*1); console.log("(2.4e-324)*1 =",(2.4e-324)*1); </script>
Number.EPSILON = 2.220446049250313e-16test.html:2:4Number.MAX_VALUE = 1.7976931348623157e+308test.html:3:4Number.MIN_VALUE = 5e-324test.html:4:4Number.MAX_SAFE_INTEGER = 9007199254740991test.html:5:4Number.MIN_SAFE_INTEGER = -9007199254740991test.html:7:4Number.NEGATIVE_INFINITY = -Inînitytest.html:9:4Number.NaN = NaNtest.html:11:4Number.POSITIVE_INFINITY = Inînitytest.html:12:4
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.
Dans un code JavaScript :
<script> console.log("Object.getOwnPropertyDescriptors(Number = ", Object.getOwnPropertyDescriptors(Number)); </script>
À la console du browser :
DIASOLUKA Nz.Luyalu 2 / 38 Sunday 24 March 2019 (18:06 a3/p3)
Le type Number
Object.getOwnPropertyDescriptors(Number)
Object { prototype: {…}, NaN: {…}, POSITIVE_INFINITY: {…}, NEGATIVE_INFINITY: {…}, MAX_VALUE: {…}, MIN_VALUE: {…}, MAX_SAFE_INTEGER: {…}, MIN_SAFE_INTEGER: {…}, EPSILON: {…}, isFinite: {…}, … }
Object.getOwnPropertyDescriptors(Number){…}
1.
{length: {…},name: {…},prototype: {…},isFinite: {…}, isInteger: {…}, …}
1.
2.
3.
4.
5.
6.
EPSILON: { value:2.220446049250313e-16,writable:false, enumerable:false,conîgurable:false}
MAX_SAFE_INTEGER: { value:9007199254740991,writable:false, enumerable:false,conîgurable:false}
MAX_VALUE: { value:1.7976931348623157e+308,writable:false, enumerable:false,conîgurable:false}
MIN_SAFE_INTEGER: { value:-9007199254740991,writable:false, enumerable:false,conîgurable:false}
MIN_VALUE: { value:5e-324,writable:false, enumerable:false,conîgurable:false}
NEGATIVE_INFINITY: { value:-Inînity,writable:false, enumerable:false,conîgurable:false}
DIASOLUKA Nz.Luyalu/ 38  3 Sunday 24 March 2019 (18:06 a3/p3)
7.
8.
9.
Le type Number
NaN: { value:NaN,writable:false, enumerable:false,conîgurable:false}
POSITIVE_INFINITY: { value:Inînity,writable:false, enumerable:false,conîgurable:false}
isFinite: { value:ƒ,writable:true, enumerable:false,conîgurable:true}
10.isInteger: { value:ƒ,writable:true,enumerable:false, conîgurable:true}
11.isNaN: { value:ƒ,writable:true, enumerable:false,conîgurable:true}
12.isSafeInteger: { value:ƒ,writable:true, enumerable:false,conîgurable:true}
13.length: { value:1,writable:false, enumerable:false,conîgurable:true}
14.name: { value:"Number",writable:false, enumerable:false,conîgurable:true}
15.parseFloat: { value:ƒ,writable:true, enumerable:false,conîgurable:true}
16.parseInt: { value:ƒ,writable:true, enumerable:false,conîgurable:true} DIASOLUKA Nz.LuyaluSunday 24 March 2019 4 / 38 (18:06 a3/p3)
Le type Number
17.prototype: { value: Number,writable:false, enumerable:false,conîgurable:false}
18.
__proto__: Object
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) aectez 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 à virguleottante 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 :
<scripttype="text/javascript">"use strict"; varnum =10; console.log( 5== num /2&& !(3+2* num).toString() ==false); // Affiche true. DIASOLUKA Nz.LuyaluSunday 24 March 2019/ 38  6 (18:06 a3/p3)
Le type Number
console.log( 5== num /2&& !(3+2* num).toString() ===""); // Affiche false. console.log((3+2* num).toString() ==false)// false console.log(!(3+2* num).toString() ==false)// true console.log((3+2* num).toString() ===false)//false console.log(!(3+2* num).toString() ===false)// true
console.log((3+2* num).toString() =="")// false console.log(!(3+2* num).toString() =="")// true console.log((3+2* num).toString() ==="")// false console.log(!(3+2* num).toString() ==="")// false console.log(!(3+2* num))// false </script>
III.Letypecasting:
1. Dans les opérations arithmétiques (outre l’addition = concaténation) 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 convertis 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".
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 (chanes) sont coercées en nombres :10 < "050" = true.
Voyez donc ceci à la console :
"88"+77 -> "8877" 88+"77" -> "8877" "88+77" -> "88+77" 88+77 -> 165 "Somme = " + 4 + 7 -> "Somme = 47" "Somme = "+1*4+7 -> "Somme = 47" "Somme = "+1*(4+7) -> "Somme = 11" "Somme = "+(4+7) -> "Somme = 11" "Somme = "+-(-4-7) -> "Somme = 11" "Somme = "+eval(4+7) -> "Somme = 11" "Somme = "+eval(4)+eval(7) -> "Somme = 47" "Somme = "+parseInt(4)+parseInt(7) -> "Somme = 47"
Et dans un code :
<scripttype="text/javascript">"use strict"; letn1=prompt("Donnez un nombre", Math.floor(Math.random()*100));
constn2=prompt("Donnez un auttre nombre", Math.floor(Math.random()*100));
console.log(n1+" + "+n2+" = "); console.log(n1 + n2); console.log(parseInt(n1) +parseInt(n2)); console.log(eval(n1) +eval(n2));
letn1e=eval(n1),n2e=eval(n2);
DIASOLUKA Nz.Luyalu/ 38  8 Sunday 24 March 2019 (18:06 a3/p3)
Le type Number
console.log(n1e + n2e); letn1p=parseInt(n1),n2p=parseInt(n2); console.log(n1p + n2p); </script>
Vous pouvez forcer unecoercion(conversion explicite) :
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 chane.
<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 chires signiîcatifs (nnn.ddd...) :
<scripttype="text/javascript">"use strict"; varnum =newNumber(1234);
console.log(num.toPrecision());// 1234 console.log(num.toPrecision(2));// 1.2e+3
num =newNumber(1234.5678); console.log(num);// Number { 1234.5678 } console.log(num.valueOf());// 1234.5678 console.log(num.toString());// 1234.5678 console.log(String(num));// 1234.5678 console.log(num.toPrecision());// 1234.5678 console.log(num.toPrecision(2));// 1.2e+3 console.log(num.toPrecision(3));// 1.23e+3 console.log(num.toPrecision(4));// 1235 console.log(num.toPrecision(9));// 1234.56780 </script>
DIASOLUKA Nz.Luyalu/ 38 Sunday 24 March 2019 10 (18:06 a3/p3)
Le type Number
Aïchage en pas îxe des décimales (NNN... . ddd...) :
<scripttype="text/javascript">"use strict"; varnum =newNumber(123); console.log(num.toFixed());// 123 console.log(num.toFixed(2));// 123.00
num =newNumber(123.4560); console.log(num);// Number { 123.456 } console.log(num.valueOf());// 123.456 console.log(num.toString());// 123.456 console.log(String(num));// 123.456 console.log(num.toFixed());// 123 console.log(num.toFixed(2));// 123.46 console.log(num.toFixed(3));// 123.456 console.log(num.toFixed(4));// 123.4560 console.log(num.toFixed(8));// 123.45600000 </script>
Aïchage Exponentiel (N.xx...Eee) :
<scripttype="text/javascript">"use strict"; varnum =newNumber(1234); console.log(num.toExponential());// 1.234e+3 console.log(num.toExponential(2));// 1.23e+3
num =newNumber(123.4560); console.log(num);// Number { 123.456 } console.log(num.valueOf());// 123.456 console.log(num.toString());// 123.456 console.log(String(num));// 123.456 console.log(num.toExponential());// 1.23456e+2 console.log(num.toExponential(2));// 1.23e+2 console.log(num.toExponential(3));// 1.235e+2 console.log(num.toExponential(4));// 1.2346e+2
DIASOLUKA Nz.LuyaluSunday 24 March 2019/ 38  11 (18:06 a3/p3)
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents