开发者学堂课程【Node.js 入门与实战:node.js 特点】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8243
node.js 特点
node.js 有哪些特点
1.事件驱动(当事件被触发时,执行传递过去的回调函数)
什么叫做事件驱动?
事件驱动就是当某个事件触发以后,执行的某段代码在浏览器端是直接性的事件。node.js也是事件驱动。
在写代码时,给它传一个回调函数进去,然后当这个事件触发后,自动执行回调函数,这就是所说的事件驱动。
2. 非阻塞I/O模型(当执行I/0操作时,不会阻塞线程)
什么叫做非阻塞I/O模型呢?
就是当node.js执行I/O操作的时候【I/O是输入输出,I/O操作可能是磁盘I/O(比如,在磁盘上写文件,从磁盘读取文件),也可能是网络I/O(比如网络中发送一些数据,从网络中接收一些数据)】,当遇到这些操作时,本来输入输出操作是比较耗时的,这时候会阻塞程序,只有在输入输出完毕以后才能继续执行。
但CS是非阻塞I/O模型,也就意味着在CS里面,当执行文件读写或者网络读写的时候,这个程序不会被阻塞,会直接基于网络过程走。不会阻塞主程序的运行。
3.单线程
node.js在浏览器端是单线程的,在CS端也是单线程的。
4.拥有世界最大的开源库生态系统-npm.
node.js内置提供的NPM,作为开发平台,会内置一些特定功能的API,内置这些API是有限的,但只要是能想到的功能,肯定已经有人写好了。这个写好代码在哪儿呢?
就在这个NPM这个代码上,它有一个非常丰富的开源生态系统,就是说node.js在运用的时候肯定会有各种各样的功能。它拥有世界上最大的开源库生态系统。
NPM上保存了所有的各种各样的JS的开源代码,这开源代码里面包含了各种各样功能。
想到的功能基本上别人就已经写好了,可直接拿来用。
在写代码的时候就不用从头开始,要做的是先把功能实现,然后再学习它是如何实现的。