La plupart du temps, une application JavaScript doit utiliser des informations. Voici 2 exemples :
- Une boutique en ligne â les informations peuvent inclure des articles vendus et un panier dâachat.
- Une application de chat â les informations peuvent inclure des utilisateurs, des messages et bien plus encore.
Les variables sont utilisées pour stocker ces informations.
Une variable
Une variable est un âstockage nommĂ©â pour les donnĂ©es. Nous pouvons utiliser des variables pour stocker des goodies, des visiteurs et dâautres donnĂ©es.
Pour créer une variable en JavaScript, nous devons utiliser le mot-clé let.
Lâinstruction ci-dessous crĂ©e (autrement dit: dĂ©clare) une variable avec le nom âmessageâ :
let message;
Maintenant, nous pouvons y mettre des donnĂ©es en utilisant lâopĂ©rateur dâaffectation = :
let message;
message = 'Hello'; // stocke la chaßne de caractÚres 'Hello' dans la variable nommée message
La chaßne de caractÚres est maintenant enregistrée dans la zone de mémoire associée à la variable. Nous pouvons y accéder en utilisant le nom de la variable :
let message;
message = 'Hello!';
alert(message); // affiche le contenu de la variable
Pour ĂȘtre concis, nous pouvons fusionner la dĂ©claration et lâaffectation de variables en une seule ligne :
let message = 'Hello!'; // définir la variable et assigner la valeur
alert(message); // Hello!
Nous pouvons également déclarer plusieurs variables sur une seule ligne :
let user = 'John', age = 25, message = 'Hello';
Cela peut sembler plus court, mais ce nâest pas recommandĂ©. Pour une meilleure lisibilitĂ©, veuillez utiliser une seule ligne par variable.
La variante multiligne est un peu plus longue, mais plus facile Ă lire :
let user = 'John';
let age = 25;
let message = 'Hello';
Certaines personnes définissent également plusieurs variables dans ce style multiligne :
let user = 'John',
age = 25,
message = 'Hello';
⊠Ou mĂȘme dans le style âvirgule premiĂšreâ :
let user = 'John'
, age = 25
, message = 'Hello';
Techniquement, toutes ces variantes font la mĂȘme chose. Câest donc une question de goĂ»t personnel et dâesthĂ©tique.
var au lieu de letDans les anciens scripts, vous pouvez également trouver un autre mot-clé : var au lieu de let :
var message = 'Hello';
Le mot-clĂ© var est presque identique Ă let. Il dĂ©clare Ă©galement une variable, mais dâune maniĂšre lĂ©gĂšrement diffĂ©rente, Ă la mode âold schoolâ.
Il y a des diffĂ©rences subtiles entre let et var, mais elles nâont pas encore dâimportance pour nous. Nous les couvrirons en dĂ©tails plus tard, dans le chapitre L'ancien "var".
Une analogie avec la vie réelle
Nous pouvons facilement saisir le concept dâune âvariableâ si nous lâimaginons comme une âboĂźteâ pour les donnĂ©es, avec un autocollant portant un nom unique.
Par exemple, la variable message peut ĂȘtre imaginĂ©e comme une boĂźte Ă©tiquetĂ©e âmessageâ avec la valeur âHello!â Ă lâintĂ©rieur :
Nous pouvons mettre nâimporte quelle valeur dans la boĂźte.
On peut aussi le changer autant de fois quâon veut :
let message;
message = 'Hello!';
message = 'World!'; // valeur changée
alert(message);
Lorsque la valeur est modifiée, les anciennes données sont supprimées de la variable :
Nous pouvons Ă©galement dĂ©clarer deux variables et copier des donnĂ©es de lâune Ă lâautre.
let hello = 'Hello world!';
let message;
// copier 'Hello world' de hello vers message
message = hello;
// maintenant les deux variables contiennent les mĂȘmes donnĂ©es
alert(hello); // Hello world!
alert(message); // Hello world!
Une variable ne doit ĂȘtre dĂ©clarĂ©e quâune seule fois.
Une dĂ©claration rĂ©pĂ©tĂ©e de la mĂȘme variable est une erreur :
let message = "This";
// répéter 'let' conduit à une erreur
let message = "That"; // SyntaxError: 'message' has already been declared
Donc, nous devrions déclarer une variable une fois et y faire référence sans let.
Il peut ĂȘtre intĂ©ressant de savoir quâil existe aussi des langages de programmation purement fonctionelle, comme Haskell qui interdisent de modifier une valeur de variable.
Dans ce genre de langage, une fois la valeur stockĂ©e dans la boĂźte, elle est lĂ pour toujours. Si nous devons stocker autre chose, le langage nous oblige Ă crĂ©er une nouvelle boĂźte (dĂ©clarer une nouvelle variable). Nous ne pouvons pas rĂ©utiliser lâancienne.
Bien que cela puisse paraĂźtre un peu Ă©trange Ă premiĂšre vue, ces langages sont tout Ă fait capables de dĂ©veloppements sĂ©rieux. Plus que cela, il existe des domaines tels que les calculs parallĂšles oĂč cette limitation confĂšre certains avantages.
Nom de variable
Il existe deux limitations pour un nom de variable en JavaScript :
- Le nom ne doit contenir que des lettres, des chiffres, des symboles
$et_. - Le premier caractĂšre ne doit pas ĂȘtre un chiffre.
Noms valides, par exemple :
let userName;
let test123;
Lorsque le nom contient plusieurs mots, le camelCase est couramment utilisĂ©. Câest-Ă -dire que les mots se succĂšdent, chaque mot Ă lâexception du premier commence par une majuscule : monTresLongNom.
Ce qui est intĂ©ressant â le signe dollar '$' et lâunderscore '_' peuvent Ă©galement ĂȘtre utilisĂ© dans les noms. Ce sont des symboles rĂ©guliers, tout comme les lettres, sans aucune signification particuliĂšre.
Ces noms sont valides :
let $ = 1; // déclarer une variable avec le nom "$"
let _ = 2; // et maintenant une variable avec le nom "_"
alert($ + _); // 3
Exemples de noms de variables incorrects :
let 1a; // ne peut pas commencer avec un chiffre
let mon-nom; // un trait d'union '-' n'est pas autorisé dans le nom
Des variables nommées apple et APPLE sont deux variables différentes.
Il est possible dâutiliser nâimporte quelle langue, y compris les lettres cyrilliques, les logogrammes chinois, etc., comme ceci :
let ĐžĐŒŃ = '...';
let æ = '...';
Techniquement, il nây a pas dâerreur ici, ces noms sont autorisĂ©s, mais il existe une convention internationale dâutiliser lâanglais dans les noms de variables. MĂȘme si nous Ă©crivons un petit script, sa vie peut ĂȘtre longue. Les personnes dâautres pays peuvent avoir besoin de les lire quelque temps.
Il existe une liste de mots rĂ©servĂ©s, qui ne peuvent pas ĂȘtre utilisĂ©s comme noms de variables, car ils sont utilisĂ©s par le langage lui-mĂȘme.
Par exemple, les mots let, class, return, function sont réservés.
Le code ci-dessous donne une erreur de syntaxe :
let let = 5; // impossible de nommer une variable "let", erreur!
let return = 5; // on ne peut pas la nommer "return" aussi, erreur!
use strictNormalement, nous devons dĂ©finir une variable avant de lâutiliser. Mais jadis, il Ă©tait techniquement possible de crĂ©er une variable par simple affectation de la valeur, sans let. Cela fonctionne toujours maintenant si nous ne mettons pas use strict. Le comportement est conservĂ© pour la compatibilitĂ© avec les anciens scripts.
// note : pas de "use strict" dans cet exemple
num = 5; // la variable "num" est créée si elle n'existe pas
alert(num); // 5
Câest une mauvaise pratique, cela donne une erreur en mode strict :
"use strict";
num = 5; // erreur: num n'est pas défini
Les Constantes
Pour déclarer une constante (non changeante), on peut utiliser const plutÎt que let :
const myBirthday = '18.04.1982';
Les variables dĂ©clarĂ©es Ă lâaide de const sont appelĂ©es âconstantesâ. Elles ne peuvent pas ĂȘtre rĂ©assignĂ©es. Une tentative de le faire provoquerait une erreur :
const myBirthday = '18.04.1982';
myBirthday = '01.01.2001'; // erreur, ne peut pas réaffecter la constante !
Lorsquâun programmeur est certain que la variable ne doit jamais changer, il peut utiliser const pour le garantir et Ă©galement le montrer clairement Ă tout le monde.
Les constantes en majuscules
Il existe une pratique rĂ©pandue dâutiliser des constantes comme alias pour des valeurs difficiles Ă mĂ©moriser, qui sont connues avant leur exĂ©cution.
Ces constantes sont nommées en utilisant des majuscules et des underscores.
Par exemple, crĂ©ons des constantes pour les couleurs au format dit âwebâ (hexadĂ©cimal) :
const COLOR_RED = "#F00";
const COLOR_GREEN = "#0F0";
const COLOR_BLUE = "#00F";
const COLOR_ORANGE = "#FF7F00";
// ... quand il faut choisir une couleur
let color = COLOR_ORANGE;
alert(color); // #FF7F00
Bénéfices:
COLOR_ORANGEest beaucoup plus facile Ă retenir que"#FF7F00".- Il est beaucoup plus facile de mal saisir
"#FF7F00"queCOLOR_ORANGE. - En lisant le code,
COLOR_ORANGEest beaucoup plus significatif que#FF7F00.
Quand devrions-nous utiliser les majuscules pour une constante et quand devrions-nous les nommer normalement ? Soyons clairs.
Ătre une âconstanteâ signifie simplement que la valeur ne change jamais. Mais il existe des constantes connues avant lâexĂ©cution (comme une valeur hexadĂ©cimale pour le rouge), et il y a celles qui sont calculĂ©es en temps rĂ©el, pendant lâexĂ©cution, mais ne changent pas aprĂšs lâaffectation.
Par exemple :
const pageLoadTime = /* temps pris par une page Web pour charger */;
La valeur de pageLoadTime nâest pas connue avant le chargement de la page, elle est donc nommĂ©e normalement. Mais cela reste une constante, car elle ne change pas aprĂšs lâaffectation.
En dâautres termes, les constantes nommĂ©es en majuscules ne sont utilisĂ©es que comme alias pour les valeurs âcodĂ©es en durâ.
Nommez les choses correctement
En parlant de variables, il y a une autre chose extrĂȘmement importante.
Un nom de variable doit avoir une signification claire et Ă©vidente, dĂ©crivant les donnĂ©es quâelle stocke.
Le nommage de variables est lâune des compĂ©tences les plus importantes et les plus complexes de la programmation. Un rapide coup dâĆil sur les noms de variables peut rĂ©vĂ©ler quel code est Ă©crit par un dĂ©butant et par un dĂ©veloppeur expĂ©rimentĂ©.
Dans un projet rĂ©el, la majeure partie du temps est consacrĂ©e Ă la modification et Ă lâextension de la base de code existant, plutĂŽt que dâĂ©crire quelque chose de complĂštement sĂ©parĂ© de zĂ©ro. Et lorsque nous revenons au code aprĂšs un certain temps, il est beaucoup plus facile de trouver des informations bien Ă©tiquetĂ©es. Ou, en dâautres termes, lorsque les variables ont de bons noms.
Veuillez prendre le temps de réfléchir à un nom pertinent pour une variable avant de la déclarer. Cela vous facilitera énormément la vie.
Voici quelques rĂšgles Ă suivre :
- Utilisez des noms lisibles par des humains comme
userNameoushoppingCart. - Restez Ă lâĂ©cart des abrĂ©viations ou des noms courts tels que
a,b,c, Ă moins que vous ne sachiez vraiment ce que vous faites. - Faire en sorte que le nom soit le plus descriptif et concis possible. Des exemples de noms incorrects sont
dataetvalue. Un tel nom ne dit rien. Câest tout Ă fait acceptable de les utiliser si le contexte dans lequel les donnĂ©es ou les valeurs sont impliquĂ©es est particuliĂšrement Ă©vident. - Sâaccorder avec son Ă©quipe (et soi-mĂȘme) sur les termes utilisĂ©s. Si un visiteur du site est appelĂ© un âutilisateurâ, nous devrions nommer les variables connexes comme
currentUserounewUser, mais noncurrentVisitorou encorenewManInTown.
Cela semble simple ? En effet, ça lâest, mais la crĂ©ation de noms descriptifs et concis dans la pratique ne lâest pas. Fonce.
Une derniÚre note. Certains programmeurs paresseux, au lieu de déclarer une nouvelle variable, ont tendance à réutiliser ceux qui existent déjà .
En consĂ©quence, la variable est comme une boĂźte oĂč les gens jettent des choses diffĂ©rentes sans changer lâautocollant. Quâest-ce quâil y a dedans maintenant ? Qui sait ⊠Nous devons creuser et vĂ©rifier.
Un tel programmeur économise un peu sur la déclaration de variable, mais perd dix fois plus sur le débogage du code.
Une variable supplémentaire est une bonne chose, cela ne complique pas le code, bien au contraire.
Les minificateurs et navigateurs modernes optimisent suffisamment le code pour ne pas crĂ©er de problĂšmes de performances. Lâutilisation de diffĂ©rentes variables pour diffĂ©rentes valeurs peut mĂȘme aider le moteur Ă optimiser.
Résumé
Nous pouvons dĂ©clarer des variables pour stocker des donnĂ©es. Cela peut ĂȘtre fait en utilisant var ou let ou const.
letâ est une dĂ©claration de variable moderne.varâ est une dĂ©claration de variable old-school. Normalement, nous ne lâutilisons pas du tout, mais nous couvrirons les diffĂ©rences subtiles par rapport Ăletdans le chapitre L'ancien "var", juste au cas oĂč vous en auriez besoin.constâ est Ă©quivalent Ălet, mais la valeur de la variable ne peut pas ĂȘtre modifiĂ©e.
Les variables doivent ĂȘtre nommĂ©es dâune maniĂšre qui nous permet de comprendre facilement ce qui est Ă lâintĂ©rieur.
Commentaires
<code>, pour plusieurs lignes â enveloppez-les avec la balise<pre>, pour plus de 10 lignes - utilisez une sandbox (plnkr, jsbin, codepenâŠ)