首先 nodejs并不是一门新的语言,他的作用主要在于后台。
接触过前端的都知道 前端无非就是 html,css,js 以及各种框架和这些语言的升级版本。
js在前端的作用除了一些动态效果就是与后台交互,比方说ajax。
但是在nodejs还没有出现的时候 js除了在前端能与后台做一些交互之外,其余的在后台就差不多看不见js的影子了。也有很多人对这个语言感到不甘,他有很强的处理能力,却在后台无法生存。直到nodejs的出现。
nodejs时基于js语法的一款运行在后台的javascript语言。
主要特点是单线程,采用非阻塞时I/O,事件驱动。
从以上三点分析nodejs优缺点的话:
其单线程一定程度的节省资源与内存,这时候就有人问到了,一个线程,能有什么用,nodejs不仅仅是单线程,它的基本操作全都是异步操作,这样就保证了,一个线程里,同时进行多种进程。
采用非阻塞制I/O 可以大大的加快nodejs的执行效率 这样可以更好的执行异步操作,不会因为某个进程的执行时间教程,从而耽误了整个进程。
采用事件驱动的执行方法,主要是用了大量的回调函数,这样可以大大的减少异步操作所带了错误,比方说进程b是基于进程a完成之后才能执行的 而异步操作不会去管a有没有完成 就会去执行b这时候把b封装成一个回调函数放入a中回调,这样就达到了a执行结束之后再去执行b 而且还不会耽误其他的进程。
如果从以上三点分析nodejs的缺点的话 单线程差不多是最大的缺点了 因为时单线程 一根线 其中一个进程崩了,就会导致整个线程坍塌,导致所有的进程全部无法进行。
除了从以上三点分析nodejs的优缺点 我们还可以从前后端的角度 分析nodejs的优点(缺点我这里就不描述了):
对于前端开发者来说 nodejs无疑是对于他们非常好的一种语言,因为nodejs的语法就是js语法,这让前端开发者非常容易学会,以及掌握。
对于后端来说,nodejs和前端交互的时候,省去了大量的代码互相融合交互的工作,还是因为代码的语法都一样,前后很容易认识。
以上就是nodejs宏观上,大概的优缺点,还有很多细节需要在实际操作中去自己发掘,自己尝试。
还有就是,学习nodejs必须要掌握的框架 express koa jquery 以及vue.js.
掌握一些es6语法 对于玩转nodejs也是有很大帮助。