后端------Node.js的概念、特点、控制台常用指令(面试题/笔试题)

目录

一、node.js的概念

二、node的特点

三、面试题/笔试题:

1、node.js是单线程还是多线程,为何是单/多线程?

2、为何是单线程,还能是非阻塞?

四、目前node.js它的地位?

五、控制台常用指令


不同语言运行在不同的系统/环境/软件中:

c/c++ ==>运行在  windows  linux

swift object-c ==>运行在   iOS

java ==>运行在  安卓

html/css/js ==>运行在  浏览器

javascript ==>运行在  node.js

一、node.js的概念

Node.js  is a JavaScript runtime built on Chrome's V8 JavaScript engine.

Node.js是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时环境,使用单线程的基于事件驱动的非阻塞I/O模型,它拥有全世界最大的开源库生态系统npm.

那么JS在哪里运行?

浏览器: ECAMS==>ES5 ES6 ES7... array object function date DOM BOM 操作页面

node: 不能操作页面 没有DOM和BOM ECMA 服务器相关操作的API 文件操作 数据库的连接 http服务:提供接口

==> node.js是一个软件,它是js的代码运行环境,可以运行js代码然后实现服务器的功能

二、node的特点

1、模块化

node.js的开发是模块化开发的思想 具有一些相同功能的代码 集成为一个模块 模块主要是由:node系统自带的模块 第三方模块和自定义模块组成 第三方模块几乎都是由npm来管理 ==>npm是一个集成了当前世界上最多开源库的生态系统

(把功能按照模块来封装,方便扩展,维护管理,更有利于开发大型项目)

npm社区nodejs的模块化社区,是全世界最大的模块市场,后被微软收购

2、事件驱动

回调函数是事件驱动的具体实现

把任务添加到事件池(event-loop),让异步任务去子线程中执行  然后注册一个事件  任务执行完毕以后 就回到主线程执行回调函数

3、非阻塞I/O操作模型

底层c/c++是多线程 为上层js提供异步编程接口,实现CPU多核处理的优势

I/O 是耗时操作

非阻塞:让计算机的多核发挥功能 同时执行任务

4、单线程

node的上层js业务代码是单线程语言

三、面试题/笔试题:

1、node.js是单线程还是多线程,为何是单/多线程?

答:

1) 单线程

2) 原因:因为node.js的主线程 是程序员写的这个线程 这个线程的代码是v8在运行 js代码,它提供的异步函数是底层c/c++在开启线程执行任务

2、为何是单线程,还能是非阻塞?

答:

1) 因为node.js的主线程 是程序员写的这个线程 这个线程的代码是v8在运行 js代码,它提供的异步函数是底层c/c++在开启线程执行任务。

2) 我们写的代码是js代码,是单线程。但是有一些异步函数是nodejs底层在开线程运行。

四、目前node.js它的地位?

node是一个开源的免费的环境,性能好速度快 资源占用小,它不安全

五、控制台常用指令

在某个文件夹下路径上输入cmd,就会在当前的路径下运行cmd.exe

node xxx.js文件 //用node环境去运行js文件

cls //清除控制台屏幕上的打印信息

ctrl+c //停止程序运行

上下键//输入过的指令历史

你可能感兴趣的:(javascript,前端,开发语言,html,node.js)