发表于: 2019-11-13 23:41:27
0 908
今天完成的事情:
1 重新整理了一下import/export/require之间的关系
明天计划的事情:
1 看题目
遇到的问题:
1 暂无
收获:
as关键字
as简单来说就是取个别名。as后面是前面的别名。import / export 都可以用
import
*符号:*就是代表所有,只用在import中。但要少用,它是使用所有export的接口,可能你只用了一个,所以最好的建议是使用花括号,用一个加一个。
export default 和 export:
官方解释:一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量(例如js文件,vue中script)
1 他们均可可用于导出常量、函数、文件、模块等,可在其它文件或模块中通过import + (常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
2 在一个文件或模块中,export、import可以有多个,export default仅有一个
3 import时区别:通过export方式导出,在导入时要加{ },并且需要知道export抛出的变量名或函数名。而export default则不需要,并可自定义(其实就是别名as语法糖)
4 语法差异
export var e1='...' 合法语句(let和const一样),但要导出已经声明的表示符,必须使用{ },例export {e1}这是ES6的写法,实际上就是{e1: e1}
export default var e2='...'是不合法(let和const一样),可直接导出已声明标识符,例export default e2 注意e2外不能加大括号,除非是直接导出{ 内容如函数等 }
5 注意:同时存在2个时这样不想分开,可这样导入
$就是通过export default导出的,只有一个,这个名字可以自己随便取,each和map这两个就是用export导出的,可以有多个,要哪个导入哪个即可。
require 和 import 引入的区别
require('地址') 遵循CommonJS/AMD,只能在运行时确定模块的依赖关系及输入/输出的变量,无法进行静态优化
require的使用非常简单,它相当于module.exports的传送门,module.exports后面的内容是什么,require的结果就是什么,对象、数字、字符串、函数……再把require的结果赋值给某个变量
import / export 遵循ES6规范, 编译时运行,支持编译时静态分析,便于JS引入宏和类型检验。动态绑定,写法在上面上面!
区别:
评论