Levage JavaScript (avec exemples)

Dans ce didacticiel, vous découvrirez le levage JavaScript à l'aide d'exemples.

Le levage en JavaScript est un comportement dans lequel une fonction ou une variable peut être utilisée avant la déclaration. Par exemple,

 // using test before declaring console.log(test); // undefined var test;

Le programme ci-dessus fonctionne et la sortie ne sera pas définie. Le programme ci-dessus se comporte comme

 // using test before declaring var test; console.log(test); // undefined

La variable test étant uniquement déclarée et n'ayant aucune valeur, une undefinedvaleur lui est affectée.

Si vous souhaitez en savoir plus sur les variables, consultez Variables JavaScript.

Remarque : lors du levage, bien qu'il semble que la déclaration ait été déplacée vers le haut dans le programme, la chose réelle qui se produit est que les déclarations de fonction et de variable sont ajoutées à la mémoire pendant la phase de compilation.

Levage variable

En termes de variables et de constantes, le mot var- clé est levé letet constne permet pas le levage.

Par exemple,

 // program to display value a = 5; console.log(a); var a; // 5

Dans l'exemple ci-dessus, la variable a est utilisée avant de la déclarer. Et le programme fonctionne et affiche la sortie 5. Le programme se comporte comme:

 // program to display value var a; a = 5; console.log(a); // 5

Cependant en JavaScript, les initialisations ne sont pas hissées. Par exemple,

 // program to display value console.log(a); var a = 5;

Production

 indéfini

Le programme ci-dessus se comporte comme:

 var a; console.log(a); a = 5;

Seule la déclaration est déplacée vers la mémoire lors de la phase de compilation. Par conséquent, la valeur de la variable a est undefineddue au fait que a est imprimé sans l'initialiser.

De plus, lorsque la variable est utilisée à l'intérieur de la fonction, la variable est hissée uniquement en haut de la fonction. Par exemple,

 // program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);

Production

 hello Uncaught ReferenceError: b n'est pas défini

Dans l'exemple ci-dessus, la variable b est hissée au sommet de la fonction greetet devient une variable locale. Donc b n'est accessible qu'à l'intérieur de la fonction. b ne devient pas une variable globale.

Pour en savoir plus sur les variables locales et globales, consultez Portée de la variable JavaScript.

Remarque : En levage, la déclaration de variable n'est accessible qu'au périmètre immédiat.

Si une variable est utilisée avec le letmot - clé, cette variable n'est pas hissée. Par exemple,

 // program to display value a = 5; console.log(a); let a; // error

Production

 Uncaught ReferenceError: Impossible d'accéder à «a» avant l'initialisation

Lors de l'utilisation let, la variable doit être déclarée en premier.

Fonction de levage

Une fonction peut être appelée avant de la déclarer. Par exemple,

 // program to print the text greet(); function greet() ( console.log('Hi, there.'); )

Production

 Salut

Dans le programme ci-dessus, la fonction greetest appelée avant de la déclarer et le programme affiche la sortie. Cela est dû au levage.

Cependant, lorsqu'une fonction est utilisée comme expression , une erreur se produit car seules les déclarations sont hissées. Par exemple;

 // program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )

Production

 Erreur de référence non interceptée: le message d'accueil n'est pas défini

Si varétait utilisé dans le programme ci-dessus, l'erreur serait:

 Uncaught TypeError: saluer n'est pas une fonction

Remarque : En règle générale, le levage n'est pas effectué dans d'autres langages de programmation tels que Python, C, C ++, Java.

Le levage peut entraîner des résultats indésirables dans votre programme. Et il est préférable de déclarer les variables et les fonctions avant de les utiliser et d'éviter le levage.

Dans le cas des variables, il vaut mieux utiliser letque var.

Articles intéressants...