JavaScript ne dispose que d' un type de number .
Les Numbers peuvent être écrits avec ou sans décimales.
Numbers JavaScript
JavaScript numbers peuvent être écrits avec ou sans décimales:
Exemple
var x = 34.00; // A number with decimals
var y = 34; // A number without decimals
Extra larges supplémentaires ou de petits nombres peuvent être écrits à caractère scientifique (exposant) notation:
Exemple
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
Numéros JavaScript sont toujours 64 bits à virgule flottante
Contrairement à de nombreux autres langages de programmation, JavaScript ne définit pas différents types de numéros, comme les entiers, court, long, en virgule flottante, etc.
numéros JavaScript sont toujours stockés en tant que double précision nombres à virgule flottante, en suivant la norme IEEE 754 international.
Ce format stocke les numéros en 64 bits, où le nombre (la fraction) est stocké dans les bits 0 à 51, l'exposant en bits 52 à 62, et le signe dans le bit 63:
Valeur (aka Fraction / Mantissa) | Exposant | Signe |
---|---|---|
52 bits (0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
Précision
Entiers (numéros sans une période ou la notation d'exposant) sont considérés comme précis jusqu'à 15 chiffres.
Exemple
var x = 999999999999999; // x will be 999999999999999
var y = 9999999999999999; // y will be 10000000000000000
Essayez - le vous - même » Le nombre maximum de décimales est de 17, mais l'arithmétique à virgule flottante ne sont pas toujours précis à 100%:
Pour résoudre le problème ci-dessus, il contribue à multiplier et diviser:
Hexadécimal
JavaScript interprète constantes numériques comme hexadécimal si elles sont précédées de 0x.
Ne jamais écrire un nombre avec un zéro (comme 07).
Certaines versions JavaScript interprètent les numéros que octal si elles sont écrites avec un zéro.
Par défaut, Javascript affiche les nombres comme base de 10 décimales.
Mais vous pouvez utiliser le toString() méthode pour les numéros de sortie en tant que base 16 (hexadécimal), base 8 (octal), ou la base 2 (binaire).
Exemple
var myNumber = 128;
myNumber.toString(16); // returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
Essayez - le vous - même » Infini
Infinity (ou -Infinity) est la valeur JavaScript retournera si vous calculez un numéro extérieur le plus grand nombre possible.
Exemple
var
myNumber = 2;
while (myNumber != Infinity) {
// Execute until Infinity
myNumber = myNumber * myNumber;
}
Essayez vous - même » Division par 0 (zéro) génère également Infinity:
Exemple
var x = 2 / 0;
// x will be Infinity
var y = -2 / 0;
// y will be -Infinity
Essayez - le vous - même » Infinity est un nombre: typeOf Infinity retourne le nombre.
NaN - Not a Number
NaN est un mot réservé JavaScript indiquant qu'une valeur est un nombre.
Essayer de faire de l' arithmétique avec une chaîne de caractères non-numérique se traduira par NaN (Not a Number):
Cependant, si la chaîne contient une valeur numérique, le résultat sera un numéro:
Vous pouvez utiliser la fonction globale JavaScript isNaN() pour savoir si une valeur est un nombre.
Exemple
var x = 100 / "Apple";
isNaN(x); // returns true because
x is Not a Number
Essayez - le vous - même » Méfiez-vous des NaN. Si vous utilisez NaN dans une opération mathématique, le résultat sera également NaN:
Ou le résultat pourrait être une concaténation:
NaN est un nombre, et typeof NaN retourne le nombre:
Les nombres peuvent être des objets
Normalement , les numéros JavaScript sont des valeurs primitives créées à partir de littéraux: var x = 123
Mais les chiffres peuvent également être définis comme des objets avec le nouveau mot - clé: var y = new Number(123)
Exemple
var x = 123;
var y = new Number(123);
//
typeof x returns number
//
typeof y returns object
Essayez vous - même » Ne pas créer des objets numériques. Il ralentit la vitesse d'exécution.
Le new mot - clé complique le code. Cela peut produire des résultats inattendus:
Lorsque vous utilisez le == opérateur d'égalité, des nombres égaux semble égale:
Exemple
var x = 500;
var y = new Number(500);
// (x == y) is true because x and y have equal values
Essayez - le vous - même » Lorsque vous utilisez l'opérateur === d'égalité, des nombres égaux ne sont pas égaux, parce que l'opérateur === attend l'égalité à la fois le type et la valeur.
Exemple
var x = 500;
var y = new Number(500);
// (x === y) is false because x and y have different types
Essayez - le vous - même » Ou pire encore. Les objets ne peuvent pas être comparés:
Exemple
var x = new Number(500);
var y = new Number(500);
// (x == y) is false because objects cannot be compared
Essayez - le vous - même » objets JavaScript ne peuvent pas être comparés.
Testez-vous avec des exercices!
Exercice 1 » Exercice 2» Exercice 3 » Exercice 4»