做了一年多的VUE开发,其实每次用node.js并不知道是什么,只知道是可以管理包的工具,现在是有必要了解一下了。
1.什么是node.js
Node是基于Chrome V8引擎开发的能使Javascript在服务器端运行的运行时环境(runtime environment),简言之就是node.js是在谷哥V8引擎上JS的运行环境。
node.js不仅仅是一个JS的运行环境,而且它提供了多种可调用的API,如读写文件、网络请求、系统信息等。另一方面,因为CPU执行的是机器码,它还负责将Javascript代码解释成机器指令序列执行,这部分工作是由V8引擎完成。
延伸知识点
Javascript 是一款拥有「自动垃圾回收」功能的编程语言。
市面上具有这样功能的语言,一般都是拥有相对应的虚拟机的,像 Java的JVM ,C#的CLR ,PHP的Zend。
虚拟机一般实现了代码解析,内存的管理、布局、垃圾回收等功能。
不像C/C++这种没有虚拟机的语言,它们需要手动管理内存。
C/C++语言编译后的文件,是可以直接运行的
如今的 Javascript 不仅仅是用在浏览器端了,也因为 NodeJS 的关系得以在服务器端运行。和浏览器端不同的地方在于服务器端对资源的敏感性是很高的。当业务规模大了,并发量上来了,一些很细小的问题会放大。这时候一些小小的内存泄漏,都会酿造灾难。
V8 概述
V8 作为一个 Javascript 引擎,最初是服役于 Google Chrome 浏览器的。它随着 Chrome 的第一版发布而发布以及开源。现在它除了 Chrome 浏览器,已经有很多其他的使用者了。诸如 NodeJS、MongoDB、CouchDB 等。
V8主要工作就是:「把 Javascript 直译成机器码,然后运行」
但这中间,往往是一个复杂的过程,它需要处理很多的难题,诸如:
编译优化 内存管理 垃圾回收



