[转载知乎]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的什么痛点和问题?更好的组织代码,提升复用性。当然在ES6中这一点也得到了很大的提升。处理文件与数据库。与互联网进行沟通,以标准化的格式处理请求并发送回答。快速地解决如上问题。同时,Node.js还带来了许多别的后端技术所不具备,或是不完善的优点,如其他人回答中的事件驱动,异步编程,非阻塞式io等等。JavaScript本身语言的特性,以及其的流行程度与社区活跃度给Node.js带来了各种意义上的优势。新人,如有理解上的偏差请各位指正,谢谢!
文章来源:
Node.js是用来做什么的?

此条目发表在NodeJs分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注