Node.js是用来做什么的？
2020年更新 答主跳槽去Google啦，最近开了b站成为了一名up主，主要是分享一些程序员相关和我做Google工作的心得，希望大家关注一波多多支持，多谢大家 -----------------------------------------------原回答分割线----------------------------------------------------- 本人在知乎的第一个正经回答，最近正在学Node.js，权当笔记了。 首先要了解Node.js，我们可以先要了解什么是v8引擎，可以说Node.js的诞生很大程度上归功于v8引擎的出现。我们都知道计算机处理器智能识别机器语言，而JavaScript是一门高级语言，计算机并不能直接读懂。所以我们需要所谓的引擎来将其转化成计算机所能理解的语言。v8引擎是由Google推出的，为其浏览器Chrome所设计的开源JavaScript引擎。得益于JIT，编译模式的改变与编译阶段的优化，JavaScript的性能得到了一个飞跃。其源代码是用c++写的，感兴趣的可以点GitHub - v8/v8: The official mirror of the V8 git repository除了对JavaScript性能的大幅提升，v8引擎也提供了“嵌入”的功能，使得开发者也可以在自己的c++程序中使用“嵌入”的v8引擎，从而高效地编译JavaScript，并加入c++的feature。要知道，作为一个底层得多的语言，c++可以实现的feature可要比JavaScript多得多。举例说明，JavaScript本身并没有read这么一个function。然而通过v8，我们可以将其绑定到一个用c++写的read callback上，从而通过JavaScript我们也可以直接加载文件了。 于是，借助于v8种种便利的功能，Node.js诞生了。 Node.js是一项服务器技术。我们都知道客户端提出服务请求，而服务器端负责处理请求并提供服务。而对于互联网来说，在Node.js之前JavaScript是一项完全的客户端技术，被用于浏览器中实现各种动画，对DOM的操作等等。而后端，即服务端则是由PHP、Python、Ruby、Java等等语言来实现。Node.js的出现，使得前后端使用同一种语言，统一模型的梦想得以实现。 所以Node.js到底解决了JavaScript的什么痛点和问题？ 同时，Node.js还带来了许多别的后端技术所不具备，或是不完善的优点，如其他人回答中的事件驱动，异步编程，非阻塞式io等等。JavaScript本身语言的特性，以及其的流行程度与社区活跃度给Node.js带来了各种意义上的优势。 新人，如有理解上的偏差请各位指正，谢谢!