脚本和模块:
js有两种源文件,一种叫做脚本,一种叫做模块。
脚本是浏览器和node环境引入的,而模块只能由js代码用import引入(模块机制)。可以理解为:脚本具有主动性,而模块是被动性,等待被调用的库。
import声明:
第一种用法:直接import一个模块, 例:import "test"
直接引入模块,只能保证该模块被执行,但不能获取到信息;
第二种用法:带from的import,例:import a from "test"
可以把他们变成本地变量,还有其他写法。
import x from "./a.js" 引入模块中导出的默认值。 import {a as x, modify} from "./a.js"; 引入模块中的变量。 import * as x from "./a.js" 把模块中所有的变量以类似对象属性的方式引入。
- 独立使用 export 声明就是一个 export 关键字加上变量名列表,例如:export {a, b, c};
- export 还有一种特殊的用法,就是跟 default 联合使用。export default 表示导出一个默认变量值,它可以用于 function 和 class。这里导出的变量是没有名称的,可以使用import x from "./a.js"这样的语法,在模块中引入。export default 还支持一种语法,后面跟一个表达式,
例如:
var a = {}; export default a;
但是,这里的行为跟导出变量是不一致的,这里导出的是值,导出的就是普通变量 a 的值,以后 a 的变化与导出的值就无关了,修改变量 a,不会使得其他模块中引入的 default 值发生改变。
export和export default区别:
1. 他们都可以导出常量,函数,文件,模块等。
2.你可以在其他模块或者文件中通过import +名称 的方式,将其导入,以便可以对其使用。
3.在一个文件或者模块中,export ,import可以有很多,export deault只能有一个。
4. 通过export导出时,在导入时需要加{},export default则不需要。