Advanced Typescript
Javascript/Les bases

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); // string

Number

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 3

De 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); // number

Une 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 caster

On peut utiliser le helper isNaN pour savoir si le nombre récupéré n'est pas un nombre.

isNaN('bonsoir lol') // renvoie true

Boolean

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, et NaN, 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