当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 深入Node之初识

深入Node之初识

2018年12月08日  | 移动技术网IT编程  | 我要评论

0前言

  陆续的用node已经一年多了,已经用node写了几个的项目,也该是总结node学习的过程了

 

1.node是啥?

  node.js是一使用javascript作为开发语言,运行在服务器端的web服务器,也就是说是 javascript的服务端运行环境,这么说其实还不严谨。node除了实现了js的运行环境外,还用c++实现了内置的库

 

2.与浏览器端的js运行环境的区别

  javascript是一种解释型脚本语言,需要运行时环境来执行代码,而这个运行时环境就是google开发的v8引擎。不管是浏览器端的js还是还是node环境的js执行环境,都是基于v8引擎实现的。

下图可以看到node环境和浏览器环境的结构。可以看到,node中除了不需要页面解析引擎外,与浏览器的区别就在于中间层的实现

  

3.node与其他编程语言相比有哪些特点

  3.1 单线程

    javascript在浏览器中运行时,js运行和页面渲染共用同一线程,也就是说js运行和页面渲染是相互阻塞的,这也证明了,在前端实践中需要把js放在最后执行的原因。

    单线程编程模型的好处是,不用担心内存状态的同步问题和程序上下文切换时的开销

  3.2异步i/o

    在浏览器编程中,需要和服务端打交道时,因为网络存在波动无法准确的预知响应时间,所以只能采用事件加回调的方式来实现,如ajax的请求的实现,只有当网络响应时才会执行注册的回调函数。如下图node的文件读取操作

 

  3.3跨平台

    node使用libuv库实现了跨平台运行的特性,libuv封装了多平的系统调用,抹平了系统之间的差异,在程序调用成抽象成统一的调用接口,使node程序能够在多平台实现相同的执行效果

4.node适合做什么工作

  i/o密集型应用,如常见的web应用,实时通讯服务器等。由于node使用js的事件+回调的机制来实现io访问,并且不会阻塞io调用

  中间层应用,作为网关代理层转发、代理、整合已有的服务和资源,快速实现产品上线、版本迭代,实现公司业务的“小步快跑”

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网