【青训营】- Node.js基础入门笔记1

简介: 【青训营】- Node.js基础入门笔记1

这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战

1. Node.js简介

Node是一个基于Chrome V8引擎、跨平台的JS运行环境,注意是环境。

版本管理

载体同一个设备可以通过下面的版本管理工具来切换node的版本。

  • n: 一个npm全局的开源包,是依赖npm来全局安装、使用的。
  • fnm: 快速简单,兼容性支持
  • nvm: 独立的软件包。(Node Version Manager)

Node的特点

异步I/O

当Node执行IO操作时,会在响应返回并恢复操作,而不是阻塞线程并浪费CPU循环等待。

单线程

Node保持了JS在浏览器中单线程的特点。以浏览器为例,浏览器是多进程,JS引擎是单线程。

image.png

  • 优点:

不用处处在意状态同步的问题,不会发生死锁,没有线程上下文切换带来的性能开销。

  • 缺点:

无法利用多核CPU,错误会引起整个应用退出,健壮性不足,大量计算占用导致CPU,无法继续执行。

跨平台

Node兼容了Linux和*nix平台,主要得益于在操作系统和Node上层模块系统之间构建了一层平台架构。

image.png

应用场景

Node在大部分领域都有一席之地,尤其是I/O密集型的。

  • Web领域:Express/Koa
  • 前端构建:Webpack
  • GUI客户端软件:VSCode/网易云音乐
  • 1实时通信、爬虫、CLI等...

模块化机制

  1. 何为模块化?

根据功能或业务将一个大程序拆分为互相依赖的小文件,再用简单的方式拼装起来。

  1. 为什么模块化?

所有Script标签必须保证顺序正确,否则会依赖报错,全局变量存在命名冲突,占用内存无法被回收

相关文章
|
1月前
|
JavaScript 前端开发
JavaScript随手笔记 --- 对数据进行判断最大位数是否超过八位
JavaScript随手笔记 --- 对数据进行判断最大位数是否超过八位
|
1月前
|
JavaScript 前端开发
JavaScript随手笔记 --- 用正则表达式匹配字符串是否为运算公式
JavaScript随手笔记 --- 用正则表达式匹配字符串是否为运算公式
|
1月前
|
JavaScript 前端开发 C语言
javascript基础入门
javascript基础入门
24 1
|
29天前
|
JavaScript 前端开发 Java
JavaScript高级笔记-coderwhy版本(六)
JavaScript高级笔记-coderwhy版本
74 0
|
29天前
|
JavaScript 前端开发 Java
JavaScript高级笔记-coderwhy版本(一)
JavaScript高级笔记-coderwhy版本
34 0
JavaScript高级笔记-coderwhy版本(一)
|
1月前
|
JSON JavaScript 前端开发
Node.JS第二讲笔记
Node.JS第二讲笔记
32 0
|
1月前
|
JavaScript 前端开发 索引
JavaScript随手笔记---对比数组差异
JavaScript随手笔记---对比数组差异
JavaScript随手笔记---对比数组差异
|
1月前
|
JavaScript 前端开发
JavaScript随手笔记---轮播图(点击切换)
JavaScript随手笔记---轮播图(点击切换)
JavaScript随手笔记---轮播图(点击切换)
|
1月前
|
JSON JavaScript 前端开发
JavaScript随手笔记---数组中相同的元素进行分组(数据聚合) groupBy函数
JavaScript随手笔记---数组中相同的元素进行分组(数据聚合) groupBy函数
|
1月前
|
JavaScript 前端开发
JavaScript随手笔记---保留小数位
JavaScript随手笔记---保留小数位