网站首页 > 基础教程 正文
1. CommonJs
1.1 概念
- Node应用由模块组成,采用CommonJS模块规范。
- 根据规范,每个文件就是一个模块,有自己单独的作用域。在一个文件里面定义变量,函数,类等都是私有的,对其他的文件不可见。
- 根据规范,每个模块内部,module白能量代表当前模块。这个变量是一个对象,它的exports属性(module.exports)是对外的接口。
- module.exports用于输出文件定义内容,require用于加载模块。
1.2 实例
1.2.1 module.exports
// example.js let x = 5; let addX = (value) => { return x + value; } module.exports.x = x; module.exports.addX = addX;
1.2.2 require
let requireTest = require(./example.js); let x = requireTest.x; let addX = requireTest.addX(3); console.log(x); // 5 console.log(addx); // 8
1.3 exports与module.exports
- Node为每个模块提供了一个exports变量,指向module.exports。这如同在每个模块的头部添加如下代码:
let exports = module.exports;
- module.exports才是真正的接口,exports只不过是它的一个辅助工具。?最终返回给调用的是module.exports而不是exports。 所有的exports收集到的属性和方法,都赋值给了Module.exports。
2. ES6模块规范
2.1 概念
- 不同于CommonJS,ES6使用的是export和import来导出和导入模块。
- export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。
2.2 实例
2.2.1 export
let firstName = "zou"; let lastName = "jie"; export { firstName, lastName }
2.2.2 export对应实例
// one export const PI = "3.1415926"; // two let name = "Robin"; export { name } // three let n = "Robin"; export { n as name }
2.2.3 import
import { firstName, lastName } from "./export.js"; let name = firstName + lastName; console.log(name); // zoujie
2.3 export default
export defalut function() { return "Robin"; }
2.3.1 export default与export区别
- 在一个文件或者模块中,export和import可以有多个,但是export default却仅有一个。
- 通过export方式导出,再导入时需要加{},按需加载。但是export default不需要。
- 输出单个模块时使用export default,多个模块时使用export。
- 不要同时使用。
猜你喜欢
- 2024-10-17 Gulp 导出任务 excel正在导出请稍后前往导出任务列表下载
- 2024-10-17 word转pdf免费网站 word转化pdf免费
- 2024-10-17 Linux知识点之变量与环境变量 linux环境变量生效顺序
- 2024-10-17 JS module的导出和导入的实现代码
- 2024-10-17 Linux下的文件操作和系统交互 linux与linux之间文件传输
- 2024-10-17 linux source命令是干啥的? linux source命令作用
- 2024-10-17 oracle逻辑备份与恢复|常用导出导入命令介绍
- 2024-10-17 快来看看这些shell基础知识你知道几个
- 2024-10-17 Linux怎么设置环境变量 linux设置环境变量ld_library_path
- 2024-10-17 Linux 系统中PATH一个示例 linux的path
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)