您的位置:首页 > Web前端 > JavaScript

学习javascript中的require、import和export的一点总结

2018-04-01 20:23 645 查看
1, AMD和CMD是基于require 来实现的。2, AMD和CMD两者的不同在于对依赖模块的执行时机处理不同。AMD依赖前置,js可以方便知道依赖模块是谁,立即加载;CMD就近依赖,按需加载,需要使用把模块变为字符串解析一遍才知道依赖了那些模块。3, AMD和CMD两者都是异步加载,。4,import模块导入与export模块导出功能相对应,也存在两种模块导入方式:命名式导入(名称导入)和默认导入(定义式导入)。是
ES2015
里的新模块化规范。注意:在node中使用的是exports,不要混淆了。5,import的语法跟require不同,而且import必须放在文件的最开始,且前面不允许有其他逻辑代码,这和其他所有编程语言风格一致。6,require的使用非常简单,它相当于module.exports的传送门,module.exports后面的内容是什么,require的结果就是什么,对象、数字、字符串、函数……再把require的结果赋值给某个变量,相当于把require和module.exports进行平行空间的位置重叠。属于
CommonJS
规范的一部分。7,ES6发布的module并没有直接采用CommonJS,甚至连require都没有采用,也就是说require仍然只是node的一个私有的全局方法,module.exports也只是node私有的一个全局变量属性,跟标准半毛钱关系都没有。8,require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量;import是解构过程;9,require / exports :遵循 CommonJS/AMD,只能在运行时确定模块的依赖关系及输入/输出的变量,无法进行静态优化。用法只有以下三种简单的写法:
const fs = require('fs')
exports.fs = fs
module.exports = fs
10,
import / export:遵循 ES6 规范,支持编译时静态分析,便于JS引入宏和类型检验。动态绑定。写法就比较多种多样:
import fs from 'fs'import {default as fs} from 'fs'import * as fs from 'fs'import {readFile} from 'fs'import {readFile as read} from 'fs'import fs, {readFile} from 'fs'export default fsexport const fsexport function readFileexport {readFile, read}export * from 'fs'

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: