Cela pourrait 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.
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).
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.
Contrairement aux langages compilés tels que Java, JavaScript n'est pas compilé en code machine avant 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.
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.
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 :
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.
La programmation impérative est un paradigme où 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.
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 des prototypes en JavaScript incluent :
Création d'objets : les objets peuvent être créés directement sans définir de classe au préalable.
Chaîne de prototypes : Chaque objet possède 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.
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.
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 :
Écouteurs d'événements : fonctions qui « écoutent » des événements spécifiques et s'exécutent lorsque ces événements se produisent.
Boucle d'événements : un processus continu qui vérifie et distribue les événements à leurs auditeurs.
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 plateformes telles que le Web, le mobile, le serveur et la RA.
Pour votre entretien, retenez cette définition :
JavaScript est un langage monothread, 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.
Camp Frontend
Qu'est-ce que cela signifie par Javascript est un langage à thread unique
Langages de programmation interprétés ou compilés
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!