Les types de données Javascript
L'ensemble des types disponible en JavaScript se compose des valeurs primitives et des objets.
Les valeurs primitives
Ce sont des données immuables, représentées au niveau le plus bas du langage
- Le type booléen
boolean - Le type nul
null - Le type indéfini
undefined - Le type nombre
number - Le type pour les grands entiers
bigint - Le type pour les chaînes de caractères
string - Le type symbole
symbol
Les objets
Ce sont des structures qui contiennent des ensembles de propriétés
- Object
- Date
- Array
- …
Conversions de types
La plupart du temps, les opérateurs et les fonctions convertissent automatiquement les valeurs qui leur sont données dans le bon type.
Par exemple, window.alert convertit automatiquement son argument en chaîne de caractères pour l'afficher. Les opérations mathématiques convertissent les valeurs en nombres.
Il existe également des cas où nous devons convertir explicitement une valeur au type attendu.
String
En général la conversion en chaine de caractères est faites par les méthodes qui requiert une string.
Par exemple, alert(value) convertit la chaine de caractère contenu dans value si nécessaire.
On peut également appeler la fonction String(value) pour effectuer une conversion explicite:
let value = true;
console.log(typeof value); // boolean
value = String(value); // value est une chaine de caractère qui vaut "true"
console.log(typeof value); // stringNumber
La conversion en nombre se fait automatiquement dans les fonctions et expressions mathématiques.
Par exemple, lorsque la division / est appliquée à des valeurs qui ne sont pas des nombres :
console.log('6' / '2') // affiche 3De la même manière que pour les string on peut utiliser le constructeur Number pour effectuer une conversion explicite:
const maChainedeNombre = '123'
console.log(typeof str); // string
let num = Number(maChainedeNombre); // num vaut le nombre 123
console.log(typeof num); // numberUne conversion explicite est généralement nécessaire lorsqu'on lit une valeur à partir d'une source basée sur une chaîne de caractères, comme un formulaire texte, mais qu'on s'attend à ce qu'un nombre soit saisi.
Si la chaîne n'est pas un nombre valide, le résultat d'une conversion est NaN.
Par exemple :
const age = Number("bonsoir");
alert(age); // age vaut NaN, javascript n'a pas pu casterOn peut utiliser le helper isNaN pour savoir si le nombre récupéré n'est pas un nombre.
isNaN('bonsoir lol') // renvoie trueBoolean
La conversion en booléen se produit dans les opérations logiques et peut aussi être effectuée explicitement avec un appel au constructeur Boolean(value).
La règle de conversion :
- Les valeurs qui sont "vides", comme 0, une chaîne de caractères vide
"",null,undefined, etNaN, deviennent fausses. Les autres valeurs deviennent vraies. Par exemple :
console.log( Boolean(1) ); // true
console.log( Boolean(0) ); // false
console.log( Boolean("hello") ); // true
console.log( Boolean("") ); // false