node.js基础认识

        node.js是V8轻量级的Web服务器, node.js 不是一门语言的名称,而是一个运行环境的名称,可以让JavaScript脱离浏览器,在后端运行。是使用了谷歌的V8引擎来解释和执行当前的JavaScript代码。node.js是基于事件驱动IO,是单线程,多进程。
node.js不像C#和Java 有命名空间和包的功能。
module 模块
module.exports 暴露模块让其他模块调用
exports 和 module.exports 是一样的

// 导出模块
exports.demo = function() {
	console.log("demo")
}
// 引入模块
const demo = require("./demo.js")

浏览器中 window对象是一个全局对象,在 node.js中全局对象是 global
node_modules
同时阻塞判断 加载模块 .js .json .node文件

function Module(id, parent) {
	this.id = id;
	this.exports = {};
	this.parent = parent;
	if(parent && parent.children) {
		parent.children.push(this);
	}
	this.filename = null;
	this.loaded = false;
	this.children = []
}

npm 包管理工具
package.json bin lib doc test
异步IO
v8的内存信息

process.memoryUsage() // 查看内存信息
{ rss: 23588864, // 总内存
  heapTotal: 9682944,// 堆空间总内存
  heapUsed: 5409144,// 堆空间使用的内存
  external: 8950 // C++占用的内存
}
JavaScript中只有字符串类型 没有二进制数据类型
buffer 二进制缓冲区 堆外内存

v8引擎使用 分代垃圾回收
新生代 存放声明周期短的 新生代分为 from区 to区
老生代 存放声明周期较长的 标记清除算法
分配的内存对象大小超过新生代的25%,直接分配到老生代中

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » node.js基础认识