Variables JavaScript

Une variable est un littéral affecté à un identificateur, vous pouvez donc le référencer et l'utiliser plus tard dans le programme. Apprenez à en déclarer un avec JavaScript

Introduction aux variables JavaScript

Une variable est un littéral affecté à un identificateur, vous pouvez donc le référencer et l'utiliser plus tard dans le programme.

Variables dansJavaScriptn'ont aucun type attaché. Une fois que vous affectez un type littéral spécifique à une variable, vous pouvez réaffecter ultérieurement la variable pour héberger n'importe quel autre type, sans erreur de type ni problème.

C'est pourquoi JavaScript est parfois appelé «non typé».

Une variable doit être déclarée avant de pouvoir l'utiliser. Il y a 3 façons de faire cela, en utilisantvar,letouconst, et ces 3 façons diffèrent dans la façon dont vous pouvez interagir avec la variable plus tard.

Utilisantvar

Jusqu'au ES2015,varétait la seule construction disponible pour définir des variables.

var a = 0

Si vous oubliez d'ajoutervarvous attribuerez une valeur à une variable non déclarée et les résultats peuvent varier.

Dans les environnements modernes, avec le mode strict activé, vous obtiendrez une erreur. Dans les environnements plus anciens (ou avec le mode strict désactivé), cela initialisera la variable et l'affectera à l'objet global.

Si vous n'initialisez pas la variable lorsque vous la déclarez, elle aura leundefinedvaleur jusqu'à ce que vous lui attribuiez une valeur.

var a //typeof a === 'undefined'

Vous pouvez redéclarer la variable plusieurs fois, en la remplaçant:

var a = 1
var a = 2

Vous pouvez également déclarer plusieurs variables à la fois dans la même instruction:

var a = 1, b = 2

Leportéeest la partie du code où la variable est visible.

Une variable initialisée avecvaren dehors de toute fonction est affecté à l'objet global, a une portée globale et est visible partout. Une variable initialisée avecvarà l'intérieur d'une fonction est assignée à cette fonction, elle est locale et n'est visible qu'à l'intérieur, tout comme un paramètre de fonction.

Toute variable définie dans une fonction portant le même nom qu'une variable globale a la priorité sur la variable globale, en la masquant.

Il est important de comprendre qu'un bloc (identifié par une paire d'accolades) ne définit pas une nouvelle portée. Une nouvelle étendue n'est créée que lorsqu'une fonction est créée, carvarn'a pas d'étendue de bloc, mais d'étendue de fonction.

À l'intérieur d'une fonction, toute variable qui y est définie est visible dans tout le code de la fonction, même si la variable est déclarée à la fin de la fonction, elle peut toujours être référencée au début, car JavaScript avant d'exécuter le code en faitdéplace toutes les variables en haut(quelque chose qui s'appellelevage). Pour éviter toute confusion, déclarez toujours les variables au début d'une fonction.

Utilisantlet

letest une nouvelle fonctionnalité introduite dans ES2015 et c'est essentiellement une version à portée de bloc devar. Sa portée est limitée au bloc, à l'instruction ou à l'expression où elle est définie et à tous les blocs internes contenus.

Les développeurs JavaScript modernes peuvent choisir de n'utiliser queletet abandonnez complètement l'utilisation devar.

Siletsemble un terme obscur, il suffit de lirelet color = 'red'commeque la couleur soit rougeet tout cela a beaucoup plus de sens

Définirleten dehors de toute fonction - contrairement àvar- ne crée pas de variable globale.

Utilisantvardans le niveau supérieur définit une variable globale qui (dans le navigateur) est ajoutée à lawindowobjet. UNElet(etconst) en dehors d'un bloc crée toujours une variable disponible dans le code de l'application, mais elle n'est pas affectée àwindow.

Utilisantconst

Variables déclarées avecvarouletpeuvent être modifiés ultérieurement dans le programme et réaffectés. Une fois parconstest initialisé, sa valeur ne peut plus jamais être modifiée et elle ne peut pas être réaffectée à une valeur différente.

const a = 'test'

Nous ne pouvons pas attribuer un littéral différent auaconst. On peut cependant muteras'il s'agit d'un objet qui fournit des méthodes qui modifient son contenu.

constne fournit pas d'immuabilité, s'assure simplement que la référence ne peut pas être modifiée.

consta une portée de bloc, identique àlet.

Les développeurs JavaScript modernes peuvent choisir de toujours utiliserconstpour les variables qui n'ont pas besoin d'être réaffectées ultérieurement dans le programme.

Pourquoi? Parce que nous devons toujours utiliser la construction la plus simple disponible pour éviter de faire des erreurs sur la route.

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: