javascript(ecmascript、DOM、BOM)
nodsJS(ecmascript、os、file、net、database)
底层语法一样,扩展部分不一样
在js中的顶层对象是window,在node中顶层对象是global
nodeJS一个文件就是一个模块,一个模块就是一个作作用域
__filename和__dirname
global
模块加载系统
require(“模块”);(返回值就是加载模块中的module.exports)
模块加载机制:
路径(绝对路径,相对路径【require(./2.js)】2.js将会加载核心模块或者node_modules)
require("./2");
首先按照加载的模块的文件名称进行查找
如果没有找到,则会在模块文件名称后加上.js后缀进行查找
如果没有找到则会加上json后缀
还没找到则会加上node
还没找到就报错
--------------------------------------------------------------
在一个模块中通过var声明的变量,其作用域的范围是当前模块,外部文件不能够直接访问,如果我们想要访问可以的做法:
1、global.a
2、使用模块对象module(保存和当前模块的有关信息)
在module下面有一个exports对象,我们可以通过这个对象把变量提供给别人访问
在模块作用域,还有一个内置的模块对象,exports他其实就是module.exports
console.log(module.exports==exports);
module.exports与exports不要赋值(对象),一旦赋值就会断开
网友评论