


Quelle est la différence entre la modularité commonjs et 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.
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!

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

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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 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.

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

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.

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.

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 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.

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.
