Les types de variables

Objectifs

  • Connaître les différents types de variables et savoir les utiliser

  • Comprendre pourquoi JavaScript est un langage dit à typage faible

Mise en situation

Nous savons maintenant comment déclarer une variable et lui affecter une valeur. Dans ce cours, nous allons voir quels sont les différents types de valeurs que l'on peut affecter à une variable, et leurs particularités.

Les différents types de variables

Les variables peuvent être des types suivants :

  • object : le type object regroupe plusieurs types d'objets fréquemment utilisés, principalement Object, Array, Date.

    • Un objet Object est composé d'un ensemble de couples clé/valeur. Les clés sont des chaînes de caractères, et les valeurs peuvent être de n'importe quel type.

    • Un objet Array est un tableau de valeurs dont les données sont indexables à partir de 0 (le premier élément correspondra à l'élément 0 du tableau).

    • Un objet Date retourne une date.

1
let exempleObjetPersonne = {
2
	"nom": "Paul",
3
	"age": 20,
4
	"informations": ["information1", "information2"]
5
}
6
7
// On accède aux différents éléments avec nomDeLaVariable.nomDeLaClé
8
console.log(exempleObjetPersonne.nom, " a ", exempleObjetPersonne.age, " ans");
9
// Affichera "Paul a 20 ans"
1
let exempleArray = ["valeur1", "valeur2", 3];
2
3
// On accède à l'élément "valeur1" comme ceci : exempleArray[0] car l'élément "valeur1" est à l'index 0 de l'array.
4
5
console.log("2ème élément : ", exempleArray[1]);
6
// Affichera "2ème élément : valeur2"
1
let date = new Date();
2
// date sera égale à la date du jour
  • string : pour les chaînes de caractères, c'est une séquence de caractères qui représente une valeur textuelle. Tout ensemble de caractères entouré de guillemets (") ou d'apostrophes (')est considéré comme une chaîne de caractères, y compris les chiffres .

    Si la chaîne de caractère contient une apostrophe ou un guillemet alors que celui-ci est aussi le délimiteur choisi, il faudra échapper ce caractère en le précédant par un antislash (\) ou changer de délimiteur.

1
let maChaineDeCaractereGuillemet = "Je m'appelle Paul."
2
let maChaineDeCaractereApostropheEchappe = 'Je m\'appelle Paul.' // Echappement sur le '
3
let maChaineDeCaractereGuillemetEchappe = "Je m'appelle \"Paul\"." // Echappement sur le "
  • number : comprend tous les nombres réels et décimaux. Il faut cependant faire attention : le typage simple des nombres en JavaScript est une exception. La plupart des autres langages, avec un typage plus strict, différencient les nombres réels (int) et les décimaux (float, long, double).

  • symbol : pour les symboles, est apparu avec ECMAScript 2015 (ES6). Ce type représente des données immuables et uniques, permettant d'éviter les problèmes de doublons dans certains cas (clés d'un objet, par exemple).

  • null : un mot-clé spécial pour indiquer une valeur nulle au sens informatique. Étant donné que JavaScript est sensible à la casse, seul null est une valeur correcte. Toute autre manière de l'écrire (Null, NULL...) serait incorrecte.

  • undefined : pour les valeurs non définies.

  • boolean : ce type ne contient que deux valeurs : true (vrai) et false (faux). Pour que cette valeur soit bien stockée comme un booléen, il ne faut pas l'entourer de guillemets ou autre. C'est un type de données à part entière, et non une chaîne de caractères.

1
var exempleBoolean = 1000 > 5;
2
console.log(exempleBoolean);
3
// Affichera true

JavaScript, un langage à typage faible et dynamique

JavaScript est un langage dit à typage faible et dynamique : cela signifie qu'il n'est pas nécessaire de préciser le type des variables qu'on déclare. Le langage va de lui-même détecter le type de la valeur renseignée, et nous pourrons effectuer les traitements propres à son type grâce à cela. Cela signifie qu'on pourra stocker différents types de valeurs dans une même variable au fil du temps. Il est également possible de modifier le type d'une variable déjà définie lors de l'exécution d'un script.

1
let x = 10;
2
console.log(typeof x);
3
// Affichera "number"
4
x = "10"; 
5
console.log(typeof x);
6
// Affichera "string"
7
// Le type de la variable a été modifié dynamiquement.

Tout opérateur renvoie un résultat, quitte à transformer le type de l'un des éléments.

Si l'assignation d'une variable mélange chaînes de caractères et valeurs numériques ainsi que l'opérateur "+", JavaScript convertira les nombres en chaînes de caractères.

1
let x = "La réponse est "
2
x = x + 25;
3
console.log(x);
4
// Affichera "La réponse est 25" comme une chaine de caractères

Ce n'est pas le cas pour les autres opérateurs, pour lesquels on obtiendra ce type de résultats :

1
let x = "37" - 7; 
2
console.log(x);
3
// Affichera 30 en tant que nombre : convertira la chaîne de caractère en nombres pour effectuer l'opération
4
x = "37" + 7;
5
console.log(x);
6
// Affichera 377 en tant que chaîne de caractères : incluera le 7 à la suite de la chaîne de caractères

Rappel

La concaténation consiste à chaîner des variables ou des propriétés les unes à la suite des autres, afin de créer un string unique. Cette notion est expliquée plus précisément dans le cours sur les opérateurs logiques.

SyntaxeÀ retenir

  • JavaScript est un langage à typage faible et dynamique, qui détecte de lui-même le type de données stockées dans une variable. Il est possible, grâce à des fonctions natives, de caster des variables, c'est-à-dire les passer d'un type à un autre type.

Complément