


Qu'est-ce qui ne va pas avec les standards ?" />
Si vous développez vos connaissances en JavaScript et que vous vous demandez pourquoi ils ajouteraient des fonctions fléchées dans ECMAScript 2015 (ES6), vous n'êtes pas seul. En développant ma connaissance de la langue, de ses subtilités et de ses bizarreries, je me suis posé la même question. Dans cet article, je présenterai les différences, les avantages et les raisons pour lesquelles il a été ajouté et quand vous devriez l'utiliser.
Parlons des différences
Avant l'introduction des fonctions fléchées, les fonctions devaient être déclarées dans le format traditionnel comme ci-dessous :
function add(x, y) { return x + y; }
ou déclaré comme expression :
const addFunction = function add(x, y) { return x + y; }
avec l'introduction des fonctions fléchées, cela peut s'écrire :
const addFunction = (x,y) => x + y
Syntaxe concise
À partir de l'exemple ci-dessus, nous pouvons facilement voir qu'en utilisant une fonction fléchée et en tirant parti de sa fonction de retour implicite, la fonction peut être rapidement refactorisée en une seule ligne. Le code résultant est plus concis, plus propre et plus facile à lire, ce qui permet un développement plus fluide et un débogage plus rapide.
Levage
Le runtime JavaScript hissera par défaut toutes les fonctions et déclarations de variables au sommet de leur portée lors de la création du contexte d'exécution. Par exemple, dans la portée globale, cela garantit que toutes les fonctions et variables déclarées seront disponibles pour toutes les fonctions appelées ultérieurement. Cependant, les fonctions fléchées ne sont jamais levées, permettant ainsi un meilleur contrôle sur l'emplacement précis de l'endroit où une fonction est exécutée et sur les variables auxquelles elle a accès.
Contexte
Chaque fois qu'une fonction JavaScript est exécutée, elle crée un contexte d'exécution qui comprend des informations sur l'environnement dans lequel la fonction s'exécute, y compris la valeur de this. Alors qu'une fonction traditionnelle est exécutée dans son propre contexte, une fonction flèche héritera toujours du contexte de la fonction qui l'a appelée.
En utilisant le code ci-dessous :
class Person { constructor(){ this.name = "George"; this.greetings = ["Good Morning,","Hello!","Howdy!"]; } printGreetings(){ this.greetings.forEach(function print(greet){ console.log(`${greet} ${this.name}`); }); } } let person = new Person(); person.printGreetings();
nous obtiendrions une erreur disant : Impossible de lire la propriété 'forEach' de undefined, car bien que la fonction printGreetings soit dans le contexte de la classe Person et hérite de son contexte, néanmoins la fonction forEach (même si son une fonction JavaScript intégrée) s'exécute dans son propre contexte qui ne contient pas la propriété this.name, ce qui entraîne une recherche erreur.
Cependant, une fonction flèche ne s'exécutera jamais dans son propre contexte, et en réécrivant la fonction ci-dessus à l'aide d'une fonction flèche...
printGreetings(){ this.greetings.forEach((greet) => { console.log(`${greet} ${this.name}`); }); }
le résultat sera comme prévu
function add(x, y) { return x + y; }
Résumé
Pour résumer les avantages des fonctions fléchées ; ils permettent un code plus court et plus concis ; offre un retour implicite du code du bloc fonctionnel ; ne remonte pas en haut du contexte d'exécution et conserve son emplacement exact dans le code ; enfin, ils héritent du contexte de la fonction qui l'a appelé sans exécuter son propre contexte, permettant une utilisation plus prévisible de ce mot-clé.
J'espère que cet article vous a aidé à mieux comprendre les différences et les avantages des fonctions traditionnelles par rapport à la fonction flèche, et vous a permis de faire un pas de plus dans votre parcours JavaScript !
Lectures complémentaires :
Blog Dmitri Pavlutin - Différences entre les fonctions fléchées et régulières
Documents de référence MDN - Fonctions fléchées
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Les choix de Python et JavaScript dans les environnements de développement sont importants. 1) L'environnement de développement de Python comprend Pycharm, Jupyternotebook et Anaconda, qui conviennent à la science des données et au prototypage rapide. 2) L'environnement de développement de JavaScript comprend Node.js, VScode et WebPack, qui conviennent au développement frontal et back-end. Le choix des bons outils en fonction des besoins du projet peut améliorer l'efficacité du développement et le taux de réussite du projet.

Oui, le noyau du moteur de JavaScript est écrit en C. 1) Le langage C fournit des performances efficaces et un contrôle sous-jacent, qui convient au développement du moteur JavaScript. 2) Prendre le moteur V8 comme exemple, son noyau est écrit en C, combinant l'efficacité et les caractéristiques orientées objet de C. 3) Le principe de travail du moteur JavaScript comprend l'analyse, la compilation et l'exécution, et le langage C joue un rôle clé dans ces processus.

JavaScript est au cœur des sites Web modernes car il améliore l'interactivité et la dynamicité des pages Web. 1) Il permet de modifier le contenu sans rafraîchir la page, 2) manipuler les pages Web via Domapi, 3) prendre en charge les effets interactifs complexes tels que l'animation et le glisser-déposer, 4) Optimiser les performances et les meilleures pratiques pour améliorer l'expérience utilisateur.

C et JavaScript réalisent l'interopérabilité via WebAssembly. 1) Le code C est compilé dans le module WebAssembly et introduit dans un environnement JavaScript pour améliorer la puissance de calcul. 2) Dans le développement de jeux, C gère les moteurs de physique et le rendu graphique, et JavaScript est responsable de la logique du jeu et de l'interface utilisateur.

JavaScript est largement utilisé dans les sites Web, les applications mobiles, les applications de bureau et la programmation côté serveur. 1) Dans le développement de sites Web, JavaScript exploite DOM avec HTML et CSS pour réaliser des effets dynamiques et prend en charge des cadres tels que JQuery et React. 2) Grâce à la réactnative et ionique, JavaScript est utilisé pour développer des applications mobiles multiplateformes. 3) Le cadre électronique permet à JavaScript de créer des applications de bureau. 4) Node.js permet à JavaScript d'exécuter le côté du serveur et prend en charge les demandes simultanées élevées.

Python est plus adapté à la science et à l'automatisation des données, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python fonctionne bien dans la science des données et l'apprentissage automatique, en utilisant des bibliothèques telles que Numpy et Pandas pour le traitement et la modélisation des données. 2. Python est concis et efficace dans l'automatisation et les scripts. 3. JavaScript est indispensable dans le développement frontal et est utilisé pour créer des pages Web dynamiques et des applications à une seule page. 4. JavaScript joue un rôle dans le développement back-end via Node.js et prend en charge le développement complet de la pile.

C et C jouent un rôle essentiel dans le moteur JavaScript, principalement utilisé pour implémenter des interprètes et des compilateurs JIT. 1) C est utilisé pour analyser le code source JavaScript et générer une arborescence de syntaxe abstraite. 2) C est responsable de la génération et de l'exécution de bytecode. 3) C met en œuvre le compilateur JIT, optimise et compile le code de point chaud à l'exécution et améliore considérablement l'efficacité d'exécution de JavaScript.

L'application de JavaScript dans le monde réel comprend un développement frontal et back-end. 1) Afficher les applications frontales en créant une application de liste TODO, impliquant les opérations DOM et le traitement des événements. 2) Construisez RestulAPI via Node.js et Express pour démontrer les applications back-end.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel
