Valeurs et variables

Un des concepts les plus importants en JavaScript est le concept des variables. Les variables nous permettent de stocker des valeurs. C’est sur ces valeurs que notre code va reposer.

Il existe deux grandes familles de valeurs, les valeurs primitives, qui sont des valeurs simples comme un chiffre ou une chaine de caractère, et les valeurs complexes qui sont des objets, par exemple un tableau de valeur.

Pour commencer, voyons de quels types peut être une valeur primitive:

  • Numérique (number), c’est-à-dire un chiffre ou un nombre. Même si le chiffre est entier, il sera toujours stocké en tant que nombre à virgule. C’est une distinction qui est faite au niveau du code, car les nombres entiers et le nombre à virgule ne sont pas toujours stockés de la même manière.
  • Textuelle (string), c’est-à-dire un caractère ou une chaine de caractère.
  • Booléen (boolean), c’est-à-dire soit vrai (true), soit faux (false).
  • Nul (null), c’est-à-dire vide.
  • Indéfini (undefined), qui n’est donc pas défini.
  • Bigint, qui définit des nombres très grands.
  • Symbol, qui définit une valeur qui ne peut pas être changée.

Il est totalement possible d'utiliser les valeurs sans les déclarer dans des variables. Il est pourtant, dans un certain nombre de cas, préférable de créer des variables afin de pouvoir utiliser certaines valeurs sans devoir les déclarer une nouvelle fois. C'est aussi par souci de modification. Si je change la valeur attribuée à une variable, le reste de mon code restera inchangé. Cela évitera d'avoir à chercher dans tout mon code, les emplacements où les valeurs doivent être changées.

Une autre notion importante est le fait que ce sont les valeurs et non les variables qui ont un type. La distinction est primordiale, car elle peut être la base d’erreur difficile à déboguer. La variable est comme une boite, elle peut comprendre plusieurs types de contenu. Mais que ce soit un chiffre, une chaîne de caractère ou un symbole, la boite ne changera pas.
Par exemple:

let exemple = 25;

exemple = "Lancelot";

Ma boite de départ, la variable "exemple" a pour contenu un chiffre. Mais dans mon code, je change cette valeur pour un texte. Ma boite restera la même, donc toujours "exemple", mais j'ai changer de type de valeurs qu'elle contient.

En ce qui concerne les noms des variables, il existe quelques règles à respecter:

  • Elle ne peut pas commencer par un chiffre.
  • Elle ne peut comporter que deux caractères spéciaux qui sont le $ (dollar) et le _ (underscore).
  • Certains noms sont interdits, comme “link” ou “function”, car réservés par le langage.

De manière conventionnelle, la variable JS est écrite en “camel case”. Ce qui veut dire que chaque mot de votre variable est collé l’un à l’autre et que la première lettre du nouveau mot est en majuscule.
Par exemple:

let userName = "David";

Il faut éviter d’utiliser les majuscules pour la première lettre. Cela n’est pas interdit, mais encore une fois, de manière conventionnelle, les variables qui commencent par une majuscule sont utilisées dans un cas spécifique, ce cas étant la déclaration de variables globales.

De même pour les noms de variables écrites entièrement en majuscule. On les utilise lorsque l'on définit une constante. C'est à dire, une valeur qui ne changera jamais.
Par exemple:

let PI = 3.1415;

Finalement, il est toujours nécessaire d'être explicite dans le nom des variables afin de savoir ce qu'elles font sans avoir besoin de se perdre dans des interprétations.
Pas exemple:

let myFirstJob = "Cleaner";

let, var, const

Il existe 3 types de variables, "let", "var" et "const". Elles ont chacun leur particularité:

let
La déclaration "let" nous permet de changer la valeur présente à l’intérieur de notre variable. Le fait de changer la valeur de la variable s’appelle “un réassignement”. On dit alors que la valeur a “muté” et est passé d’une valeur à une autre.

var
Nous éviterons d’utiliser cette déclaration. Il est néanmoins intéressant de la connaître, car il est possible de la rencontrer dans de plus ancienne version de JavaScript. C’est “l’ancienne méthode” qui servait à déclarer des variables. Elle fonctionne sur la même base que let. Leur différence se fait au niveau de leur disponibilité dans le code. En résumé "var" est une variable dite “globale” alors que "let" est une variable locale.

const

La déclaration "const" définit une variable qui n’est pas censée être modifiée. Il est donc impossible de réassigner une valeur et la valeur présente ne pourra pas être mutée. La particularité de cette déclaration est qu’elle ne peut pas être non définie.

On peut donc se demander quand utiliser quelle déclaration. En règle générale, il est préférable d’utiliser "const". "let" ne devrait être utilisé que lorsque nous sommes absolument certains que la valeur de la variable va subit une modification. On privilégie donc toujours des constantes (const).


Liens utiles

Convention JavaScript
W3School donne quelques input en terme de convention JavaScript. On y retrouve les notions partagés en cours ainsi que d'autres principes.

Lexic Javascript
MDN vous donne une liste exhaustive des termes réservés au langage JavaScript. Cela va encore un peu plus loin avec des exemples ainsi que des règles de syntaxe dans la manière de déclarer et appeler des variables/valeurs.

arrow-up-circle