深入理解ES6之《用模块封装代码》

news/2025/3/22 1:42:39

什么是模块

模块是自动运行在严格模式下并且没有办法退出运行的Javascript代码

  1. 在模块的顶部this的值是undefined
  2. 其模块不支持html风格的代码注释
    除非用default关键字,否则不能用这个语法导出匿名函数或类

任何未显示导出的变量、函数或类都是模块私有的,无法从模块外部访问

import {identifier1,identifier2} from './example.js'

import大括号表示给定模块导入的绑定,文件必须把文件扩展名也加上扩展名
导入绑定的列表看起来与解构对象很相似,但它不是
当从模块中导入一个绑定时,它就好像使用const定义的一样
不管是在import语句中把一个模块写了多少次,该模块将只招待一次。导入模块的代码执行后,实例化过的模块被保存在内存中,只要另一个import语句引用它就可以重复使用它
export和import的一个重要的限制是它们必须在其它语句和函数之外使用,也就是说不允许出现在if语句中,不能有条件导出或以任何方式动态导出。模块语法存在的一个原因是让js引擎静态确定哪些可以导出,因此只能在模块顶部使用export
export、import都可以用as来重命名导出的函数名
为默认导出值指定标识符指定重命名语法:

function sum(num1, num2) {return num1 + num2
}
//export default sum
export { sum as default }

看下面这个例子:

export let color = 'red'
export default function (num1, num2) {return num1 + num2
}import sum,{color} from './example.js'

import 和export 组合使用

export {sum as add } from './example.js'

<script type="module"执行时自动应用defer属性,模块文件开始下载,直到文档被完全解析模块才会执行,模块按照它们出现在html文件中的顺序执行
async属性也可以应用在模块上,async属性会让模块以类似于脚本的方式执行,唯一的区别是在模块执行前,模块中所有的导入资源必须下载下来,这可以确保只有当模块招待所需的所有资源都下载完成后才执行模块,但不能保证是模块的招待时机

浏览器模块说明符解析

  1. 以/开头的解析为以根目录开始
  2. 以./开头的解析为以当前目录开始
  3. 以../开头的解析为从父目录开始

https://dhexx.cn/news/show-540192.html

相关文章

编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回 值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25

算法思想&#xff1a;将一个无符号整型的第一位比特位拿出来&#xff08;从左到右&#xff09;&#xff0c;用的方法是移位与1&#xff1b;然后定义一个新的变量初始化成0&#xff0c;按以上的方法如果检测到某位是1&#xff0c;则从右往左把对 应的比特位置1,0不要管&#xf…

RBAC教程()简单的RBAC权限管理框架

一.RBAC简介 基于角色的访问控制RBAC的权限管理&#xff0c;基于角色的访问控制&#xff08;Role-Based Access Control&#xff09;&#xff0c;在RBAC中&#xff0c;权限与角色相关联&#xff0c;用户通过成为适当角色的成员而得到这些角色的权限。最后的结果就是不同的用户…

WPF 与 摄像头资料

WPF中摄像头的读取。 http://social.msdn.microsoft.com/Forums/zh-CN/wpfzhchs/thread/ed555e11-20f1-4b7c-b590-430e72369ad1 WPF MediaKit - For webcam, DVD and custom video support in WPFWebcam control with WPF or how to create high framerate player with DirectS…

BUG库(linux)tar文件解压: Exiting with failure status due to previous

一.Bug场景描述linux下解压文件 tar: Exiting with failure status due to previous errors 二.解决办法 1.提升源权限 chmod 777 mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz 2.提升目标路径权限 chmod -R 777 mysql 3.sudo执行

[ZZ]log4net在WINFORM里面的使用(2)

原文出处&#xff1a;http://www.cnblogs.com/zya-gis/archive/2009/02/26/1399142.html 今天开始着手考虑我毕业设计的问题.想用Log4net来记录日志信息.log4net在网上的介绍很多.我就不多说了,我就谈谈今天解决的问题. 最开始在一个单独的项目里,使用log4net记录日志完全没有…

IT狂人第一至四季/全集The IT Crowd迅雷下载

本季第一至四季 The IT Crowd (2006)看点&#xff1a;《IT狂人》史上最囧&#xff0c;最雷&#xff0c;最脑残&#xff0c;最出乎意料&#xff0c;最不按常理出牌的IT “精英们”登上银屏了。让超擅长收发邮件、单击和双击鼠标的IT女皇Jen&#xff0c;智商超高最爱搞发明创造的…

程序编译与链接,以及预定义符号,

1.预处理标识符又称预定义符号&#xff0c;它们的值是&#xff08;字符串常量、十进制数字常量&#xff09;&#xff08;1&#xff09;__FILE__ &#xff1a;表示进行编译的源文件名 &#xff08;2&#xff09;__LINE__ &#xff1a;表示文件当前行的行号 &#xff08;3&a…

MySql教程(--)MySql安装-基于yum源安装mysql

一.下载mysql的yum源 1.地址可根据自己需求下载 http://repo.mysql.com/ wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 2.执行下载源 rpm -ivh mysql57-community-release-el7-8.noarch.rpm 3.安装 yum -y install mysql-server 4.启动 se…

Windows Shell扩展系列文章 2 - .NET 4为扩展的Windows Shell上下文菜单项添加位图图标...

在“Windows Shell扩展系列文章 1 - .NET 4 编写Windows Shell上下文菜单扩展”一文中&#xff0c;我们介绍了如何使用.NET 4编写VC#或VB.NET代码创建Windows Shell上下文菜单扩展。 很多开发人员想进一步知道&#xff1a;如何为扩展的菜单项加上位图图标。本文便通过一个来自于…

hadoop之 hadoop用途方向

hadoop是什么&#xff1f;Hadoop是一个开源的框架&#xff0c;可编写和运行分不是应用处理大规模数据&#xff0c;是专为离线和大规模数据分析而设计的&#xff0c;并不适合那种对几个记录随机读写的在线事务处理模式。HadoopHDFS&#xff08;文件系统&#xff0c;数据存储技术…