北京最大的网站建设有限公司/长春网站建设公司哪家好
-
CommonJS 模块就是对象,输入时必须查找对象属性。ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。
-
ES6 的模块自动采用严格模式,不管你有没有在模块头部加上"use strict";。ES6 模块之中,顶层的this指向undefined,即不应该在顶层代码使用this。
-
一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。
-
需要特别注意的是,export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。
-
export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。这一点与 CommonJS 规范完全不同。CommonJS 模块输出的是值的缓存,不存在动态更新
-
使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块。
-
import后面的from指定模块文件的位置,可以是相对路径,也可以是绝对路径,.js后缀可以省略。如果只是模块名,不带有路径,那么必须有配置文件,告诉 JavaScript 引擎该模块的位置。
-
除了指定加载某个输出值,还可以使用整体加载,即用星号(*)指定一个对象,所有输出值都加载在这个对象上面。
-
为了给用户提供方便,让他们不用阅读文档就能加载模块,就要用到export default命令,为模块指定默认输出。