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调用

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

深入Node之初识的更多相关文章

  1. node.js系列笔记之node.js初识《一》

    node.js系列笔记之node.js初识<一> 一:环境说明 1.1 Linux系统CentOS 5.8 1.2 nodejs v0.10.15 1.3 nodejs源码下载地址 htt ...

  2. Node.JS初识

    对Node.JS的认识 1.Node 是一个服务器端 JavaScript 解释器: 2.Node 的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个物理机的连接代码.处理高 ...

  3. .NET程序员也学Node.js——初识Node.js

    清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...

  4. Node.js 初识2

    原文:https://www.cnblogs.com/zzuIvy/p/nodejs_1.html 测试:node.js部署网站 1.创建js2.js var http = require('http ...

  5. Node.js 初识1

    测试:让Node.js运行脚本 1.创建一个脚本 js1.js console.log('测试'); 2.cmd界面 运行脚本

  6. python 全栈开发,Day54(node.js初识)

    一.什么是Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事 ...

  7. node.js初识10

    post请求 form.html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  8. node.js初识09

    1.node_module文件夹 如果你的require中没有写./,那么Node.js将该文件视为node_modules目录下的一个文件. 2.package.json文件 如果使用文件夹来统筹管 ...

  9. node.js初识08

    1.模块的概念,在前端的世界里,jq和js的关系,在后台里就是express和原生node的关系, 2.每一个js里的函数都只在当前文件里起作用,如果你希望在其他js里调用这个函数,这么你需要在这个j ...

随机推荐

  1. css常见的各种布局下----三列布局

    css 三列布局,左右固定宽度右边自适应 1不使用定位,只使用浮动可以实现左右固定,中间宽度自适应布局 1.1.1 自适应部分一定要放第一个位子,使用浮动,并且设置宽度为100%,不设置浮动元素内容不 ...

  2. 联发科AIoT平台i500处理器简介

    i500是一款强大而高效的AIoT平台,专为便携式.家用或商用物联网应用而设计,这些应用需要大量的边缘处理.先进的多媒体功能.多台高分辨率相机.相连的触屏显示器和多任务操作系统. 该平台集成了Arm ...

  3. keyboard dialog 仿微博表情键盘输入框

    功能描述:弹出键盘,右边有最大化按钮,没有最大化的时候最大行数为3,默认1行,随着文字输入增加自动增加高度,到达3行时不会在增加,点击最大化输入框,行数无限制,输入框下方图片点击删除 此处为了简便,键 ...

  4. 三、 redis进阶篇

    1. redis事务 使用方法:方法为先发送multi命令告诉redis,下面所有的命令属于同一个事务,先不要执行,而是把他们暂时存起来,redis返回OK,然后后面执行需要放在同一个事务里的命令,可 ...

  5. shell 简单脚本编程

    shell脚本编程 编译器,解释器 编程语言: 机器语言,汇编语言,高级语言 静态语言:编译型语言 强类型(变量) 事先转换成可执行格式 C,C++,JAVA,C# 动态语言:解释型语言,on the ...

  6. Win7 + CentOS7 双系统

    记录一下更改系统启动菜单的方法. 前提: 1. 先安装 Win7 在硬盘第一分区,其它分区在 Win7 下处于未分配状态. 2. 再安装 CentOS 到上述未分配分区.(注意:手动分区时,可以留一定 ...

  7. Ons 让人欲哭无泪问题,官方介绍不详

      订阅不一致导致消费时成功时失败问题: Console下使用.Net SDK 访问队列成功. Windows 服务下使用.Net SDK 访问队列成功.   有时成功,有时则没有任何反应-   解决 ...

  8. SQLI LABS Stacked Part(38-53) WriteUp

    这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...

  9. DotNetCore深入了解之三HttpClientFactory类

    当需要向某特定URL地址发送HTTP请求并得到相应响应时,通常会用到HttpClient类.该类包含了众多有用的方法,可以满足绝大多数的需求.但是如果对其使用不当时,可能会出现意想不到的事情. usi ...

  10. Java I/O不迷茫,一文为你导航!

    前言:在之前的面试中,每每问到关于Java I/O 方面的东西都感觉自己吃了大亏..所以这里抢救一下..来深入的了解一下在Java之中的 I/O 到底是怎么回事..文章可能说明类的文字有点儿多,希望能 ...