2.4 Typage dynamique

Dans ce cours, nous allons découvrir le typage dynamique en JavaScript. Une particularité qui distingue JavaScript de nombreux autres langages de programmation est qu'il s'agit d'un langage dynamique. Il existe deux grandes catégories de langages : les langages statiques, où le type d'une variable est figé à sa déclaration et ne peut plus changer, et les langages dynamiques comme JavaScript, où le type peut évoluer à l'exécution.

L'opérateur typeof

Reprenons l'exemple de la vidéo précédente : nous avons déclaré une variable name initialisée avec une chaîne. Son type est donc string. Pour le vérifier, on utilise l'opérateur typeof dans la console : typeof name renvoie bien "string". Si on réaffecte ensuite name = 1; puis qu'on relance typeof name, on obtient maintenant "number". C'est exactement ça, un langage dynamique : le type d'une variable est déterminé lors de l'exécution, en fonction de la valeur qu'on lui a attribuée.

Notez au passage que typeof est un mot-clé réservé : on ne peut donc pas appeler une variable typeof. Effaçons la console avec Ctrl + L et regardons d'autres exemples. typeof age renvoie "number". Si on modifie age en un nombre à virgule, le type reste "number" : en JavaScript, il n'existe pas deux types de nombres (entiers et décimaux), tout est de type number.

Observons d'autres cas : typeof isApproved renvoie "boolean". typeof firstName, si la variable est déclarée sans valeur, renvoie "undefined" : la valeur n'est pas définie et le type non plus. Comme vu précédemment, il existe deux catégories de types : les types primitifs et les types de référence, et undefined en fait partie. Enfin, typeof selectionCouleur renvoie "object". Qu'est-ce qu'un objet ? Ce sera le sujet de notre prochaine vidéo.