"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Qu'est-ce que JavaScript ? Une définition pour tout couvrir.

Qu'est-ce que JavaScript ? Une définition pour tout couvrir.

Publié le 2024-08-20
Parcourir:633

What is JavaScript? One Definition to Cover It All.

Cela peut ou non être demandé lors d'une interview, mais croyez-moi une fois que vous aurez lu ceci, vous comprendrez beaucoup mieux les jargons JS. (Brownie souligne son utilisation lors d'une interview).

Il s'agit de la question n°3 de la série de questions d'entrevue frontale. Si vous souhaitez améliorer votre préparation ou rester informé en général, pensez à rejoindre la liste d'attente sur Frontend Camp.


JavaScript est un langage de programmation interprété à thread unique, typé dynamiquement, qui prend en charge plusieurs paradigmes, notamment les styles orientés objet, fonctionnels et impératifs. Il présente une orientation objet basée sur des prototypes et une architecture basée sur les événements.

C'est la définition ringard de JavaScript. Mais que signifie chaque terme ? Découvrons-le.

Monothread

JavaScript est un langage à thread unique, ce qui signifie qu'il n'a qu'un seul thread d'exécution principal. Cela signifie également qu’il dispose d’une seule pile d’appels. Lorsqu'un appel de fonction est effectué, il est ajouté en haut de la pile d'appels. Une fois son exécution terminée, il est retiré de la pile et le contrôle passe à la fonction suivante dans la pile d'appels. L'exécution de tâches de manière séquentielle est fondamentale dans la nature de JavaScript, mais elle fournit des API pour exécuter des opérations asynchrones (fetch et setTimeout en sont quelques exemples).

Typé dynamiquement

En JavaScript, les variables ne sont pas explicitement déclarées avec des types. Les types sont associés à des valeurs et non à des variables telles qu'elles sont déduites au moment de l'exécution. Les types peuvent également changer au cours du cycle de vie d'un programme. Cette fonctionnalité rend JS flexible, mais elle peut être sensible aux erreurs liées au type. Des outils comme TypeScript aident à ajouter des types statiques pendant le développement, mais ils sont finalement compilés en JS.

Langage de programmation interprété

Contrairement aux langages compilés tels que Java, JavaScript n'est pas compilé en code machine avant son exécution. Au lieu de cela, le code est lu, interprété et exécuté ligne par ligne au moment de l'exécution. Cependant, pour améliorer les performances, les moteurs JavaScript modernes utilisent la compilation Just-In-Time (JIT) qui compile des morceaux de code à la volée. Cette approche améliore la vitesse d'exécution.

Orienté objet

Ce paradigme de programmation organise le code en objets, qui sont des instances de classes ou de prototypes. Le mot-clé class a été introduit dans ES6 pour le sucre syntaxique. Sous le capot, les classes en JavaScript utilisent toujours des prototypes. Cette implémentation de la POO est unique à JavaScript.

Fonctionnel

C'est un paradigme de programmation qui favorise l'écriture de code déclaratif en mettant l'accent sur l'utilisation de fonctions. Certains des concepts clés sont :

  1. Fonctions pures : fonctions qui produisent toujours le même résultat pour des entrées données et n'ont aucun effet secondaire.
  2. Fonctions d'ordre supérieur : fonctions qui peuvent prendre d'autres fonctions comme arguments ou les renvoyer comme résultats.
  3. Immuabilité : traiter les données comme immuables, bien que JavaScript ne l'applique pas par défaut.
  4. Fonctions de première classe : les fonctions sont traitées comme des citoyens de première classe, ce qui signifie qu'elles peuvent être affectées à des variables, passées en arguments ou renvoyées par d'autres fonctions.
  5. Composition des fonctions : créer des fonctionnalités complexes en combinant des fonctions plus simples.

JavaScript prend en charge ces concepts de programmation fonctionnelle aux côtés de ses autres paradigmes, permettant aux développeurs d'utiliser des techniques fonctionnelles le cas échéant.

Impératif

La programmation impérative est un paradigme dans lequel le code décrit explicitement la séquence d'étapes que le programme doit suivre pour atteindre l'état souhaité. JavaScript prend entièrement en charge toutes les constructions nécessaires telles que les variables, les boucles, les conditions et les opérateurs requis pour l'écriture de code impératif. Cette approche permet un contrôle précis du flux d'exécution du programme. Il est souvent utilisé pour implémenter des algorithmes et gérer des changements d’état complexes.

Orientation basée sur des prototypes

JavaScript utilise un modèle objet basé sur un prototype, qui est une forme de programmation orientée objet dans laquelle les objets sont les entités principales. Contrairement aux langages basés sur les classes, JavaScript utilise des prototypes pour implémenter l'héritage et partager des propriétés et des méthodes entre objets.

Les aspects clés de l'orientation basée sur les prototypes en JavaScript incluent :

  1. Création d'objets : les objets peuvent être créés directement sans définir de classe au préalable.

  2. Chaîne de prototypes : Chaque objet a un lien vers un autre objet appelé son prototype. Si une propriété ou une méthode n'est pas trouvée sur un objet, JavaScript la recherche dans le prototype, puis dans le prototype du prototype, et ainsi de suite.

  3. Héritage : les objets peuvent hériter des propriétés et des méthodes d'autres objets via leur chaîne de prototypes.

Ce système basé sur un prototype permet une programmation orientée objet puissante et flexible.

Architecture basée sur les événements

L'architecture basée sur les événements de JavaScript est une approche de programmation dans laquelle le flux du programme est déterminé par des événements tels que les actions de l'utilisateur, les sorties de capteurs ou les messages d'autres programmes. Ceci est fondamental pour la façon dont JavaScript interagit avec les navigateurs Web et gère les opérations asynchrones.

Les principaux aspects de l'architecture basée sur les événements de JavaScript incluent :

  1. Écouteurs d'événements : fonctions qui « écoutent » des événements spécifiques et s'exécutent lorsque ces événements se produisent.

  2. Boucle d'événements : un processus continu qui vérifie et distribue les événements à leurs auditeurs.

  3. Programmation asynchrone : permet au code de s'exécuter sans bloquer le thread principal, ce qui est crucial pour les applications Web réactives.

Cette architecture permet à JavaScript de gérer efficacement les interactions des utilisateurs, les appels d'API, les minuteries et autres opérations asynchrones, ce qui le rend parfaitement adapté à la création d'applications Web interactives.

Tous ces concepts combinés font de JavaScript un langage polyvalent qui peut être utilisé sur une variété de plates-formes telles que le Web, le mobile, le serveur et la RA.


Remarques

Pour votre entretien, retenez cette définition :

JavaScript est un langage à thread unique, typé dynamiquement et compilé par interprétation. C'est un langage multiplateforme mais principalement utilisé sur le Web pour ajouter de l'interactivité aux pages.

Ressources

Camp frontal
Qu'est-ce que cela signifie par Javascript est un langage à thread unique
Langages de programmation interprétés ou compilés

Déclaration de sortie Cet article est reproduit à: https://dev.to/thesanjeevsharma/what-is-javascript-one-definition-to-cover-it-all-43l2?1 s'il y a une violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3