美文网首页
NodeJs -- 1 (基本介绍)

NodeJs -- 1 (基本介绍)

作者: Coldhands | 来源:发表于2019-06-27 10:35 被阅读0次
1.什么是NodeJs?

NodeJs不是一门编程语言,是一个javascript的运行环境,NodeJs是采用C++语言编写而成的一个javascript的解释器。

2.什么是运行环境?

通俗讲指一种语言想要实现相关的功能需要另外一种事物(可以是语言也可以是其他的东西)作为它的载体或者运行平台。

  • 在客户端,javascript想要实现某种功能是需要浏览器提供支持,如果没有浏览器提供支持是完成不了的。
  • 操作系统的运行环境,就是电脑硬件本身,如果连电脑都没有,那么操作系统无法运行。
3.为什么NodeJs是javascript的运行环境?

因为NodeJs采用的是Google Chrome浏览器的V8引擎,而V8引擎就是javascript的运行环境。

4.服务器语言有什么特点?

4.1 进行http通信、接受http请求、响应http请求;
4.2 操作数据库,对数据库里面的内容进行增删改查;
4.3 可以操作本地文件,对本地文件进行读写,创建和删除等。

5.NodeJs 有什么特点?

5.1 进行http通信、接受http请求、响应http请求;
5.2 操作数据库,对数据库里面的内容进行增删改查;
5.3 可以操作本地文件,对本地文件进行读写,创建和删除等;
5.4 是javascript的运行环境;
5.5 事件驱动;
5.6 非阻塞I/O;
5.7 单线程。

6.什么是事件驱动?

事件:在客户端js中有 点击按钮事件/鼠标事件/键盘事件等都叫事件。
事件驱动:有鼠标或者键盘引起一连串的操作动作叫做事件驱动。
简单理解:通常事件驱动会伴随着相对应的程序处理或者函数的执行。

7.什么是非阻塞I/O?

I/O:input/outiput 输入输出
  
通俗来讲:
 对于磁盘I/O = 读写
 对于网络I/O = 收发请求
  
阻塞I/O:
 指在执行I/O的过程中,会阻塞其他应永程序的进行,只有等待这个I/O完成后,才会进行其他的操作。
非阻塞I/O:
 指在执行I/O的过程中,不会等待其他应用程序执行完成后再执行其他应用程序,当I/O结束后,再回头处理这个结果,即异步。

8.单线程

单线程:程序按照逻辑顺序执行,前面的必须处理完成,后面的才会执行,即在同一个时间里面只能做一件事情。
 如:你在点击按钮出现弹窗的时候,就不可以对浏览器做出其他的相应操作。
  
多线程:程序在一个时间里面可以做多个事情 能够提高效率
 如:迅雷同时下载多部电影
  
问: javascript 是一门单线程语言,为什么javascript不能是多线程?
答:javascript作为单线程,由其内容所决定,在浏览器环境中,JavaScript的主要用操作DOM。如果JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这个时候无法进行。

9. 问题来了,既然javascript是单线程,那么为什么nodejs会有非阻塞I/O?

I/O操作都是比较耗时的,这个会阻塞其他的任务进行,javascript的设计者认为,没有必要等待I/O的完成,在I/O任务完成之前javascript完全可以继续执行其他的任务,直到I/O任务完成后再回头执行该任务的返回就行。
所以javascript在设计之初中将这些耗时的I/O等操作封装为了异步的方法,等到这些任务完成后就将后续的处理操作封装为JavaScript任务放入执行任务队列中,等待JavaScript线程空闲的时候被执行。

相关文章

  • NodeJs -- 1 (基本介绍)

    1.什么是NodeJs? NodeJs不是一门编程语言,是一个javascript的运行环境,NodeJs是采用C...

  • node模块化2

    1. 课程介绍 Ø NodeJS介绍(了解) Ø NodeJS准备工作(掌握) Ø NodeJS模块(掌握) Ø ...

  • node.js 模块化 day1(2019.5.27)

    1.课程介绍 NodeJS介绍(了解) NodeJS准备工作(掌握) NodeJS模块(掌握) NPM(掌握) 2...

  • node模块化

    一、 Node.js模块 1. 课程介绍 ◆ NodeJS介绍(了解) ◆ NodeJS准备工作(掌握) ◆ No...

  • 02.NodeJs基本语法

    一.认识NodeJs 1.NodeJs的事件驱动和异步IO 缺点: 2.npm介绍: ​ 是nodejs自带的...

  • vue.js单文件组件入门笔记

    nodeJs nodeJs安装 nodeJs模块 npm介绍 cnpm npm常用指令介绍 npm in...

  • 基于NodeJs的mongodb基本操作

    基于NodeJs的mongodb基本操作 1. NodeJs简介 node是什么 node 就是JavaScrip...

  • 作用域、事件、异步

    作用域、事件、异步 1. 课程介绍 Ø CNPM(淘宝NPM) Ø NodeJS控制台 Ø NodeJS作用域(掌...

  • NodeJS学习路线

    目录Nodejs的介绍15个Nodejs应用场景Nodejs学习路线图 Nodejs的介绍Node.js的是建立在...

  • node.js简单搭建服务器

    官网 https://nodejs.org 关于版本基本介绍: 运行: vscode创建node.js文件,进行简...

网友评论

      本文标题:NodeJs -- 1 (基本介绍)

      本文链接:https://www.haomeiwen.com/subject/nkqlcctx.html