<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
En langage JavaScript, un mécanisme appelé **Levée de JS** est décrit où les déclarations de variables, fonctions, classes ou imports sont conceptuellement placées en haut de leur portée avant l'exécution du code. Ce processus est automatiquement effectué par le moteur JavaScript, qui parcourt le script en plusieurs passes.
Lors de la première passe, le moteur analyse le code pour vérifier les erreurs de syntaxe et le transforme en un arbre de syntaxe abstraite. Cette phase inclut la levée, un processus où certaines déclarations sont déplacées en haut du contexte d'exécution. Si la phase d'analyse est réussie, indiquant l'absence d'erreurs de syntaxe, l'exécution du script se poursuit.
2. L'emplacement du code dans le script affecte l'exécution en raison de la levée, bien que le code exécuté puisse différer de sa représentation textuelle.
1.**Levée de Valeur** : Permet l'utilisation de la valeur d'une variable dans sa portée avant sa ligne de déclaration.
2.**Levée de Déclaration** : Permet de référencer une variable dans sa portée avant sa déclaration sans provoquer d'`ReferenceError`, mais la valeur de la variable sera `undefined`.
En détail, les déclarations de fonction présentent un comportement de levée de type 1. Le mot-clé `var` démontre un comportement de type 2. Les déclarations lexicales, qui incluent `let`, `const` et `class`, montrent un comportement de type 3. Enfin, les instructions `import` sont uniques en ce sens qu'elles sont levées avec à la fois les comportements de type 1 et de type 4.
Par conséquent, si vous avez des scénarios où vous pouvez **Injecter du code JS après l'utilisation d'un objet non déclaré**, vous pourriez **corriger la syntaxe** en le déclarant (afin que votre code soit exécuté au lieu de générer une erreur) :
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.