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.

En résumé

Le typage dynamique est une caractéristique fondamentale de JavaScript qui le distingue des langages statiques. Contrairement aux langages où le type d'une variable est fixe dès sa déclaration, en JavaScript le type peut changer lors de l'exécution en fonction de la valeur assignée. L'opérateur typeof permet de vérifier le type d'une variable à tout moment, révélant comment JavaScript traite la dynamique des types différemment des langages traditionnels.

Points clés

  • JavaScript est un langage dynamique où le type d'une variable est déterminé à l'exécution et peut changer selon la valeur assignée
  • L'opérateur typeof est un mot-clé réservé permettant de vérifier le type d'une variable (ne peut pas être utilisé comme nom de variable)
  • JavaScript unifie tous les nombres sous le type number, sans distinction entre entiers et décimales
  • Le type undefined s'applique aux variables déclarées mais non définies ou dont la valeur n'est pas assignée
  • Les deux catégories fondamentales sont les types primitifs (string, number, undefined) et les types de référence (objets)

Questions fréquentes

Quelle est la différence entre un langage statique et un langage dynamique ?

Dans un langage statique, le type d'une variable est défini et immuable. En JavaScript, langage dynamique, le type peut changer lors de l'exécution en fonction de la valeur assignée à la variable.

Comment vérifier le type d'une variable en JavaScript ?

On utilise l'opérateur typeof suivi du nom de la variable (ex: typeof name). Cet opérateur retourne le type actuel : string, number, undefined, object, etc.

Pourquoi JavaScript n'a-t-il qu'un seul type number ?

JavaScript ne fait pas de distinction entre nombres entiers et nombres à virgule - tous les nombres sont du type number, contrairement à certains langages qui ont des types séparés.