Les variables en JS

Les variables servent d'espace de stockage en JS comme dans les autres langages. On peut y stocker du texte (string), un chiffre entier (integer ou int), un réel (float) mais aussi une collection d'informations (un array).
Un langage faiblement typé et une forte scalabilité.
Le JS est dit "langage faiblement typé". Cela signifie que les variables déclarées n'ont pas besoin d'être typé. Il est inutile, comme dans d'autres langages, d'indiquer si elle contient un int, un float ... On déclare la variable avec le contenu et c'est tout
Voici des exemples d'initialisation de variables.
let nom = "masson";
var prenom = 'Sébastien';
let age = 21;
const taille = 1.90;
Vous noterez que les chaînes (string en anglais, le texte) peut être encadré par des guillemets simples ou doubles.
Il existe 3 types de variables en JS :
- const
- let
- var
Mais pourquoi trois types de variables ?
A chaque type de variable son rôle et son champ d'application.
Constante
Comme son nom l'indique la variable appelée "constante" n'est pas variable mais constante. C'est bien un espace de stockage mais qui, une fois initilisée, ne pourra plus changer.
Quel intérêt d'avoir une donnée fixe, qui ne peut plus changer ?
Eh bien justement, s'assurer que la donnée ne change pas, sécuriser notre application. Par exemple, je propose un code promotion à mes internautes avec une remise de 20%. Le coefficient multiplicateur 0,8 sera placé dans une constante pour ne pas être modifié. On peut imaginer la même chose avec un taux de TVA, une adresse ...
Let
La variable let est une variable dite locale. Son champ d'action est limité à l'endroit où elle est créée.
Elle est particulièrement évidente à comprendre dans le cadre d'une boucle où l'incrément sert à compter le nombre d'itération que l'on souhaite réaliser.
for(let i=0; i<100; i++){
console.log("ligne "+i);
}
Ici, on demande à écrire 100 lignes en indiquant le numéro de la ligne. L'incrément i n'a d'intérêt que dans la boucle. La variable locale est donc particulèrement indiquée.
Pour bien comprendre, voici un cas où l'utilisation de la variable locale let ne fonctionne pas.
// je crée une fonction
function affichage(){
let prenom = "seb";
console.log(prenom); // affiche correctement mon prénom
}
// je lance ma fonction
affichage();
console.log(prenom); // erreur car la variable n'existe QUE dans la fonction affichage
var
le mot clé var permet de créer une variable globale, utilisable dans tout le code.
Dans notre exemple précédent, si on utilise var au lieu de let pour créer la boucle, la variable i sera accessible en dehors de la boucle.
for(var i=0; i<100; i++){
console.log(i);
}
console.log('et donc i vaut :' + i); // affiche i vaut : 100
C'est un souci car i ne devait servir qu'à cette boucle. Accessible de l'extérieur il peut entrer en interaction avec une autre variable i, alimenter une faille de sécurité ...
Le même code avec un let va provoquer une erreur.
for(let i=0; i<100; i++){
console.log(i);
}
console.log('et donc i vaut :' + i); // erreur
La variable littérale
Il y a encore un moyen de déclarer une variable en JS, la créer simplement, sans indiquer sa nature.
agence = "masson communication";
Sans rien préciser, comme dans l'exemple ci-dessus, on crée une variable globale.
Quelle variable utiliser alors ?
Il n'y a pas de règle absolue mais on privilégiera les constantes et les varaibles locales pour rigidifier le code et éviter la réutilisation non contrôlée de nos variables.
Une constante, une fois définie, ne peut pas être changée, c'est protecteur
Une variable locale ne peut opérer que dans son champ, ce qui protège le reste du script. Or, comme une variable locale n'est pas amener à sortir de son champ, cela complique les possibilités de hacking ou d'erreur de code...