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. 全网首发! Odoo 订单分解执行及供应链管理免费开源解决方案

    引言 前一篇介绍了佛山王朝家具的案例背景.佛山王朝家具公司在全国有30多家门店,三个生产工厂.王朝家具有六大痛点问题: 订单迫切需要实现电子化管理及在线签名 总部分单工作量大,供应链效率低 配送和售后 ...

  2. 在Hyper-V上安装RemixOS 的Android模拟器

    不想用实体机,想不想弄个快速的Android虚拟环境,今天我们就来说说把Android模拟器(RemixOS)安到Hyper-v上的办法. 1. 下载RemixOs  或者直接去 论坛获得下载地址 2 ...

  3. python3 购物车

    今天干了啥?喂了喂龟,看了看鱼... 然后就是学习了两个模块:sys模块和os模块,突然觉得python真的好,只要英语学的好,看代码超级舒服的说,嗯,我要好好学英语,今天背了几个啥,唉.写完博客再背 ...

  4. 恢复oracle中误删除drop掉的表 闪回的方法

    恢复oracle中误删除drop掉的表   查看回收站中表 --需要在其所在用户下查询 回收站对象 select object_name,original_name,partition_name,ty ...

  5. JAVAFX之tableview界面实时刷新导致的内存溢出(自己挖的坑,爬着也要出来啊0.0)

    这几天遇到了一个问题,不幸开发的一个cs架构的工具,客户端开启后,内存一直在缓慢增长最终导致进程卡死,花了4天时间,终于爬出来了... 客户端通过timer定时器每30秒查询一次数据库以及一些业务逻辑 ...

  6. shell 编程记录

    1 文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename为目录,则为真 [ -d /tm ...

  7. 6.[leetcode] ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  8. PHP全栈学习笔记7

    图形图像处理技术,gd库的强大支持,PHP的图像可以是PHP的强项,PHP图形化类库,jpgraph是一款非常好用的强大的图形处理工具. 在PHP中加载GD库 gd官方网址下载: http://www ...

  9. 爬虫框架之Scrapy(一)

    scrapy简介 scrapy是一个用python实现为了爬取网站数据,提取结构性数据而编写的应用框架,功能非常的强大. scrapy常应用在包括数据挖掘,信息处理或者储存历史数据的一系列程序中. s ...

  10. ubuntu-18.04 安装zsh的方法步骤

    zsh是一款跨平台的轻量级的终端,功能十分强大,会极大地提升你的工作效率.安装指南: ➜ ~ sudo apt-get install zsh ➜ ~ zsh --version #确认是否安装成功 ...