一.node和JavaScript的异同
相同点:
1.ECMAScript
2.语法
3.内置对象,方法
不同点:
JS中的顶层对象:window
node顶层对象:global
// 一个文件就是一个模块
var a = 100
console.log(a)
global.a = 200
console.log(global.a)
console.log(__filename)
二.模块加载机制
1.路径
2.模块查找机制
let { creat } = require('./cat')
三.模块
1.module对象
![这里写图片描述](https://img-blog.csdn.net/20180422101005210?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTRfOTUyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
2.module和exports相关概念
// module: 保存提供和当前模块的相关的一些信息
// 在这个module对象,有一个子对象:exports对象
// 我们可以通过这个对象把一个某爱中的局部变量对象进行提供访问
var a = 10
module.exports.a = a
// 在模块作用域,还有一个内置的模块对象,export,它其实就是module.exports
console.log(module.exports === exports) // true
// exports和module.exports的指向关系问题
module.exports = [1, 2, 3]
exports.a = 200 // 当加载这个模块时,输出[1, 2, 3],而module.exports和exports并不相等
console.log(module.exports === exports) // false
四.相关API
1.__filename和__dirname
console.log(__filename)
console.log(__dirname)