Maison > interface Web > Questions et réponses frontales > Les valeurs sorties par le module es6 sont-elles copiées ?

Les valeurs sorties par le module es6 sont-elles copiées ?

青灯夜游
Libérer: 2022-10-18 15:29:56
original
1156 Les gens l'ont consulté

Non, le module ES6 génère une référence à la valeur, tandis que le module CommonJS génère une copie de la valeur. Dans le module ES6, lorsque le moteur JS analyse statiquement le script et rencontre la commande de chargement du module import, il génère une référence en lecture seule ; lorsque le script est réellement exécuté, il ira au module chargé en fonction de cette référence en lecture seule ; référence. Prendre de la valeur. Les modules ES6 sont des références dynamiques. Les modules ES6 ne mettent pas en cache les résultats en cours d'exécution, mais obtiennent dynamiquement les valeurs du module chargé, et les variables sont toujours liées au module dans lequel elles se trouvent.

Les valeurs sorties par le module es6 sont-elles copiées ?

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

Chargement du navigateur

Par défaut, le navigateur charge les scripts JavaScript de manière synchrone, c'est-à-dire que lorsque le moteur de rendu rencontre la balise <script>, il s'arrêtera et attendra que exécution Terminez le script et continuez le rendu. <script>标签就会停下来,等到执行完脚本,再继续向下渲染。

如果是外部脚本,还必须加入脚本下载的时间。

如果脚本体积很大,下载和执行的时间就会很长,因此造成浏览器堵塞,用户会感觉到浏览器“卡死”了,没有任何响应。这显然是很不好的体验,所以浏览器允许脚本异步加载,下面就是两种异步加载的语法。

<script src="path/to/myModule.js" defer></script>
<script src="path/to/myModule.js" async></script>
Copier après la connexion

<script>标签打开defer或async属性,脚本就会异步加载。渲染引擎遇到这一行命令,就会开始下载外部脚本,但不会等它下载和执行,而是直接执行后面的命令

  • defer要等到整个页面在内存中正常渲染结束(DOM 结构完全生成,以及其他脚本执行完成),才会执行;
  • async一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。

一句话,defer是“渲染完再执行”,async是“下载完就执行”。另外,如果有多个defer脚本,会按照它们在页面出现的顺序加载,而多个async脚本是不能保证加载顺序的。

浏览器加载 ES6 模块,也使用<script>标签,但是要加入type="module"属性。浏览器对于带有type="module"<script>,都是异步加载不会造成堵塞浏览器,即等到整个页面渲染完,再执行模块脚本,等同于打开了

<script type="module" src="./foo.js"></script>
Copier après la connexion

如果网页有多个

Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal