node.js基础认识

十年热恋 提交于 2020-08-12 08:44:15

        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%,直接分配到老生代中

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!