Maison interface Web Questions et réponses frontales Quelle est la différence entre la modularité commonjs et es6

Quelle est la différence entre la modularité commonjs et es6

Mar 07, 2022 pm 06:58 PM
es6 模块化

Différences : 1. Les modules CommonJS sont chargés au moment de l'exécution, tandis que les modules ES6 sont des interfaces de sortie au moment de la compilation ; 2. require() du module CommonJS charge les modules de manière synchrone, tandis que la commande d'importation du module ES6 se charge de manière asynchrone ; module, ES6 est l'introduction du module.

Quelle est la différence entre la modularité commonjs et es6

L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 6, ordinateur Dell G3.

CommonJS

  • Pour les types de données de base, il s'agit d'une copie. Autrement dit, il sera mis en cache par le module. Parallèlement, les variables sorties par ce module peuvent être réaffectées dans un autre module.

  • Pour les types de données complexes, il s'agit d'une copie superficielle. Puisque les objets référencés par les deux modules pointent vers le même espace mémoire, les modifications de la valeur du module affecteront l'autre module.

  • Lorsqu'un module est chargé à l'aide de la commande require, le code de l'ensemble du module sera exécuté.

  • Lorsque la commande require est utilisée pour charger le même module, le module ne sera pas exécuté à nouveau, mais la valeur dans le cache sera obtenue. En d'autres termes, quel que soit le nombre de chargements du module CommonJS, il ne s'exécutera qu'une seule fois lors de son premier chargement. S'il est chargé ultérieurement, le résultat de la première exécution sera renvoyé, sauf si le cache système est chargé. effacé manuellement.

  • Lors d'un chargement en boucle, il est exécuté lors du chargement. Autrement dit, lorsque le code du script est requis, il sera entièrement exécuté. Une fois qu'un module est "chargé en boucle", seule la partie exécutée sera sortie, et la partie non exécutée ne sera pas sortie.

Module ES6

  • Les valeurs du module ES6 appartiennent à [référence dynamique en lecture seule].

  • En lecture seule, c'est-à-dire que la valeur de la variable importée ne peut pas être modifiée. La variable importée est en lecture seule, qu'il s'agisse d'un type de données de base ou d'un type de données complexe. Lorsqu'un module rencontre une commande d'importation, une référence en lecture seule est générée. Lorsque le script est réellement exécuté, la valeur sera récupérée du module chargé en fonction de cette référence en lecture seule.

  • Pour la dynamique, lorsque la valeur d'origine change, la valeur chargée par l'import changera également. Qu'il s'agisse d'un type de données de base ou d'un type de données complexe.

  • Lors d'un chargement en boucle, les modules ES6 sont référencés dynamiquement. Tant qu'une référence existe entre les deux modules, le code pourra s'exécuter.

La différence entre les modules ES6 et les modules CommonJS

1 Les modules CommonJS sont chargés au moment de l'exécution, tandis que les modules ES6 sont des interfaces de sortie au moment de la compilation.

2. Le require() du module CommonJS charge le module de manière synchrone, tandis que la commande import du module ES6 se charge de manière asynchrone, avec une phase de résolution indépendante pour les dépendances du module.

3. CommonJS est une copie superficielle du module, et le module ES6 est l'introduction du module. C'est-à-dire que le module ES6 est uniquement en lecture seule et ne peut pas modifier sa valeur. , semblable à const.

4. L'interface d'importation est en lecture seule (statut lecture seule), et sa valeur variable ne peut pas être modifiée. Autrement dit, le pointeur pointant vers sa variable ne peut pas être modifié, mais le pointeur interne pointant vers la variable peut être modifié. Vous pouvez réaffecter une paire commonJS (modifier le pointage du pointeur), mais attribuer une valeur à un module ES6 entraînera une erreur de compilation.

Ce que les modules ES6 et CommonJS ont en commun :

1. Les modules CommonJS et ES6 peuvent attribuer des valeurs aux objets importés, c'est-à-dire modifier les valeurs des propriétés internes des objets.

【Recommandations associées : tutoriel vidéo javascript, front-end web

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'async est-il pour es6 ou es7 ? L'async est-il pour es6 ou es7 ? Jan 29, 2023 pm 05:36 PM

async est es7. async et wait sont de nouveaux ajouts à ES7 et sont des solutions pour les opérations asynchrones ; async/await peut être considéré comme un sucre syntaxique pour les modules co et les fonctions de générateur, résolvant le code asynchrone js avec une sémantique plus claire. Comme son nom l'indique, async signifie « asynchrone ». Async est utilisé pour déclarer qu'une fonction est asynchrone ; il existe une règle stricte entre async et wait. Les deux sont inséparables l'un de l'autre et wait ne peut être écrit que dans des fonctions asynchrones.

Comment optimiser la maintenabilité du code Java : expérience et conseils Comment optimiser la maintenabilité du code Java : expérience et conseils Nov 22, 2023 pm 05:18 PM

Comment optimiser la maintenabilité du code Java : expérience et conseils Dans le processus de développement logiciel, l'écriture de code avec une bonne maintenabilité est cruciale. La maintenabilité signifie que le code peut être facilement compris, modifié et étendu sans provoquer de problèmes inattendus ni d'efforts supplémentaires. Pour les développeurs Java, comment optimiser la maintenabilité du code est une question importante. Cet article partagera quelques expériences et suggestions pour aider les développeurs Java à améliorer la maintenabilité de leur code. Suivez les règles de dénomination standardisées. Les règles de dénomination standard peuvent rendre le code plus lisible.

Comment résoudre l'erreur de complexité du code dans le code Python ? Comment résoudre l'erreur de complexité du code dans le code Python ? Jun 24, 2023 pm 05:43 PM

Python est un langage de programmation simple, facile à apprendre et efficace, mais lorsque nous écrivons du code Python, nous pouvons rencontrer des problèmes de complexité excessive du code. Si ces problèmes ne sont pas résolus, cela rendra le code difficile à maintenir, sujet aux erreurs et réduira la lisibilité et l’évolutivité du code. Ainsi, dans cet article, nous verrons comment résoudre l’erreur de complexité du code dans le code Python. Comprendre la complexité du code La complexité du code est une mesure de la nature du code qui est difficile à comprendre et à maintenir. En Python, certains indicateurs peuvent être utilisés

Comment résoudre l'erreur de mauvaise maintenabilité du code Python ? Comment résoudre l'erreur de mauvaise maintenabilité du code Python ? Jun 25, 2023 am 11:58 AM

Python, en tant que langage de programmation de haut niveau, est largement utilisé dans le développement de logiciels. Bien que Python présente de nombreux avantages, un problème auquel de nombreux programmeurs Python sont souvent confrontés est que le code est moins maintenable. La maintenabilité du code Python inclut la lisibilité, l'évolutivité et la réutilisabilité du code. Dans cet article, nous nous concentrerons sur la façon de résoudre le problème de la mauvaise maintenabilité du code Python. 1. Lisibilité du code La lisibilité du code fait référence à la lisibilité du code, qui est au cœur de la maintenabilité du code.

Comment implémenter la déduplication de tableau dans es5 et es6 Comment implémenter la déduplication de tableau dans es5 et es6 Jan 16, 2023 pm 05:09 PM

Dans es5, vous pouvez utiliser l'instruction for et la fonction indexOf() pour réaliser la déduplication de tableau. La syntaxe "for(i=0;i<array length;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}". Dans es6, vous pouvez utiliser l'opérateur spread, Array.from() et Set pour supprimer la duplication ; vous devez d'abord convertir le tableau en un objet Set pour supprimer la duplication, puis utiliser l'opérateur spread ou la fonction Array.from(). pour reconvertir l'objet Set en un groupe Just.

Que signifie la zone morte temporaire es6 ? Que signifie la zone morte temporaire es6 ? Jan 03, 2023 pm 03:56 PM

Dans es6, la zone morte temporaire est une erreur de syntaxe, qui fait référence aux commandes let et const qui font que le bloc forme une portée fermée. Dans un bloc de code, avant qu'une variable ne soit déclarée à l'aide de la commande let/const, la variable est indisponible et appartient à la « zone morte » de la variable avant que la variable ne soit déclarée ; c'est ce qu'on appelle syntaxiquement une « zone morte temporaire ». ES6 stipule que la promotion des variables ne se produit pas dans les zones mortes temporaires et dans les instructions let et const, principalement pour réduire les erreurs d'exécution et empêcher l'utilisation de la variable avant qu'elle ne soit déclarée, ce qui peut entraîner un comportement inattendu.

L'importation ES6 favorisera-t-elle les variables ? L'importation ES6 favorisera-t-elle les variables ? Jan 18, 2023 pm 07:44 PM

L’importation ES6 entraînera une promotion variable. Le levage de variable est le processus consistant à hisser une déclaration de variable au début de sa portée. js doit passer par les phases de compilation et d'exécution. Pendant la phase de compilation, toutes les déclarations de variables seront collectées et les variables déclarées à l'avance, tandis que les autres instructions ne changeront pas leur ordre. Par conséquent, pendant la phase de compilation, la première étape est déjà terminée. exécutée, et la deuxième partie n'est exécutée que lorsque l'instruction est exécutée dans la phase d'exécution.

Comment déterminer le nombre d'éléments dans un tableau dans es6 Comment déterminer le nombre d'éléments dans un tableau dans es6 Jan 18, 2023 pm 07:22 PM

Dans es6, vous pouvez utiliser l'attribut length de l'objet tableau pour déterminer le nombre d'éléments dans le tableau, c'est-à-dire pour obtenir le nombre d'éléments dans le tableau, cet attribut peut renvoyer le nombre d'éléments dans le tableau ; utilisez l'instruction "array.length". Renvoie une valeur représentant le nombre d'éléments de l'objet tableau, c'est-à-dire la valeur de longueur.

See all articles