帮助自己更好梳理和记述自己Node学习过程
参考资料:
《node入门》 在线地址
《深入浅出Node.js》以及相关网上资料查询,这里就不一一写明。如有引用,会标明出处。
--2019/03/19
-
Node 是什么
- Node 是一个让 JavaScript 运行在服务端的开发平台,Node给JavaScript带来的一个新局面。
-
Node 影响
- Node打破了过去JavaScript只能在浏览器中运行的局面。前后端编程环境统一,可以大大降低前后端转换所需要的上下文交换代价。
-
Node中的JavaScript
-
Node保留了前端浏览器JavaScript中那些熟悉的接口,没有改写语言本身的任何特性,依旧基于作用域和原型链,区别在于它将前端中广泛运用的思想迁移到了服务器端。--《深入浅出Nodejs》
-
它实现了诸如文件系统、模块、包、操作系统 API、网络通信等一些功能
-
其实这一块部分,我觉得可能更多的是面试的时候会问到这一块。
| 语言类型 | I/O处理方式 | 线程 |
|---|---|---|
| Node.js | 异步I/O | 单线程 |
| 巨头服务器语言 | 同步I/O | 多线程 |
-
异步I/O优缺点
- 优点:性能和速度比同步的速度要快
- 缺点:回调函数也是最好的接受异步调用返回数据的方式。但是这种编程方式对于很多习惯同步思路编程的人来说,也许是十分不习惯的。代码的编写顺序与执行顺序并无关系,这对他们可能造成阅读上的障碍。
-
单线程优缺点
- 优点:单线程的最大好处是不用像多线程编程那样处处在意状态的同步问题,这里没有死锁的存在,也没有线程上下文交换所带来的性能上的开销。
- 缺点:①无法利用多核CPU ②错误会引起整个应用退出,应用的健壮性值得考验。 ③大量计算占用CPU导致无法继续调用异步I/O。