Node.js 简介【笔记1】
目录
Node.js简介
Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。
Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。
- 前端核心技术体系
- Node.js能做服务端【小程序、App、网站、游戏】
- 学习内容如下图:【知识点多,较难】
- 计算机组成结构
- 程序运行流程
- 进程和线程
- 同步和异步
- IP和端口
为什么学习Node.js?
- 前端开发三大框架与其息息相关:Vue、React、Angular
- 可以让其他人访问我们编写的网页
- 为后续的框架学习打基础
Node.js是什么?
Node.js is an open-source, cross-playform JavaScript runtime environment. [截取自https://nodejs.org/en/ 官网]
Node.js是一个开源的,跨平台的JavaScript运行环境。
通俗解释:Node.js就是一款应用程序,是一款软件,它可以运行JavaScript。
错误说法:Node.js是一门编程语言。Node.js是新版本的JavaScript。
Node.js的作用
1.开发服务器应用
网页文件构成:HTML控制结构、CSS控制样式、JavaScript控制交互和效果
nodejs运行在服务端
服务器保存写好的HTML、CSS、JavaScript文件;
用户通过URL向服务器发送请求;
服务器将资源返回给浏览器,游览器对资源进行解析,即可展示网站页面。
2.开发工具类应用
3.开发桌面的应用
- VSCode :代码编辑器
- Figma :设计工具
- Postman:接口测试工具
- electron:以上三个软件都借助于electron框架,electron框架是借助于node.js开发的。
Node.js的安装
链接: Node.js官网[https://nodejs.org/en]
- LTS:长期维护版本
Win+R→输入cmd→enter:打开命令提示符工具【命令行工具】
输入node -v 可以监测node.js是否安装成功和查看版本
图中:【C:\Users\Zyf】是命令行的工作目录;node是命令名称,-v是命令参数。
认识命令行工具
在命令行工具中可运行程序
命令的结构有命令名称和命令参数组成【命令参数可为0个或多个】
命令行如何查看D:/Program Files里的内容?
#切换工作目录到D盘命令 d:
#查看D盘内容命令 dir
#改变文件夹命令 cd 【切换工作目录】
#将工作目录切换到上一级命令 cd ..
说明 | 操作 |
---|---|
切换盘符 | C: D: |
切换工作目录 | cd |
查看目录文件 | dir |
- dir \s 查看当且工作目录的内容,包括子文件夹的内容,可以用Ctrl+C终止命令
- 在命令行工具中运行js文件:在当前文件目录下运行 node 文件名.js 命令,来运行js文件。
Node.js注意事项
- Node.js中不能使用 BOM 和 DOM 的 API ,可以使用 console 和定时器 API
- Node.js中的顶级对象为 global,也可以用 globalThis 访问顶级对象
JS核心语法:变量声明、循环控制、对象函数声明等语法
//BOM
console.log(window); //ReferenceError: window is not defined
console.log(history); //ReferenceError: history is not defined
console.log(navigator); //ReferenceError: navigator is not defined
console.log(location); //ReferenceError: location is not defined
//DOM
console.log(document); //ReferenceError: document is not defined
//AJAX
let xhr = new XMLHttpRequest(); //ReferenceError: XMLHttpRequest is not defined
console.log('one'); //one
setTimeout(() => {
console.log('two');
}, 1000); //two
//global 顶级对象
// console.log(global);
// console.log(globalThis);//ES2020
console.log(global === globalThis); //true
Buffer (缓冲器)介绍与创建
1.概念
Buffer是一个类似数组Array的对象,用于表示固定长度的字节序列;
Buffer本质是一段固定长度的内存空间,专门用来处理二进制数据。
2.特点
- Buffer 大小固定且无法调整
- Buffer 性能较好,可以直接对计算机内存进行操作
- 每个元素的大小为1字节 (byte)【1 byte= 8 bit】
3.使用
3.1 创建Buffer
Node.js中创建Buffer的方式:
- Buffer.alloc
//创建一个长度为10字节的Buffer,相当于申请了10字节的内存空间,每个字节的值为0
let buf_1 = Buffer.alloc(10); //Buffer是Nodejs内置模块,全局变量;alloc【分配】是方法
console.log(buf_1); //结果为<Buffer 00 00 00 00 00 00 00 00 00 00>
- Buffer.allocUnsafe
//创建一个长度为10字节的Buffer,buffer中可能存在旧的数据,可能会影响执行结果,所以叫Unsafe
let buf_2 = Buffer.allocUnsafe(10);
console.log(buf_2);
- Buffer.from
//通过字符串创建buffer
let buf_3 = Buffer.from('hello');//字母转换成Unicode表的数字的16进制
console.log(buf_3); //结果为<Buffer 68 65 6c 6c 6f>
//通过数组创建buffer
let buf_4 = Buffer.from([105,108,111,118,101,121,111,117]);
console.log(buf_4); //结果为<Buffer 69 6c 6f 76 65 79 6f 75>
Unicode表兼容ASCII表
3.2 Buffer 与字符串的转化
可借助 toString 方法将 Buffer 转化为字符串
let buf_4 = Buffer.from([105,108,111,118,101,121,111,117]);
console.log(buf_4.toString()); //结果为iloveyou
toString 默认是按照utf-8 编码方式进行转换的
3.2 Buffer 的读写
Buffer 可以直接通过 [ ] 的方式对数据进行处理
//读取 []
// let buf_3 = Buffer.from('hello');
console.log(buf_3[0]); //结果为104
console.log(buf_3[0].toString(2)); //结果为1101000,真实保存的值为01101000
//修改写入
buf_3[1] = 97;
console.log(buf_3.toString()); //结果为hallo
//溢出
buf_3[0] = 361; //255(10进制) => 1111 1111(2进制),大于255的舍弃高位的数字 0001 0110 1001(2进制) => 0110 1001(2进制) => 105(10进制) => 69(16进制)
console.log(buf_3); //结果为<Buffer 69 61 6c 6c 6f>
//中文
let buf_5 = Buffer.from('你好'); //utf-8的一个中文字符占3个字节
console.log(buf_5); //结果为<Buffer e4 bd a0 e5 a5 bd>
注意:
1.如果修改的数值超过255,则超过8位数据会被舍弃
2.一个utf-8的字符一般占3个字节
计算机基础
计算机基本组成
- CPU:中央处理器,计算机运算和控制的中心;
- 内存:存储数据的介质,读写速度较快,断电丢失数据;
- 硬盘:存储数据的介质,读写速度较慢,断电不丢失数据;
- 主板
- 显卡、声卡:处理信号
- 散热器
- 外设:鼠标、键盘、音响等
程序运行的基本流程
操作系统: Windows、Linux、MacOS,是一种应用程序,用来管理和调度硬件资源。(需要将操作系统装到计算机的硬盘中)
计算机启动的基本过程:
程序启动的基本过程:
程序一般保存在硬盘中,软件安装的过程就是将程序写入硬盘的过程。
程序在运行时会加载进入内存,然后由CPU读取并执行程序。
进程与线程
进程:【进行中的程序】,进程是程序的一次执行过程。
Windows系统可通过任务管理器查看进程
线程:线程是一个进程中执行的一个执行流。一个线程是属于某个进程的。
一个进程可以有一个或多个线程
查看某一进程下的所有线程:pslist -dmx pid号 【pid号是进程id】
注意:输入pslist,如果命令不被识别,则表示当前电脑上没有安装pslist这个工具,可以到windows官方网站:https://technet.microsoft.com/en-us/sysinternals/bb896682.aspx下载,下载完成后将其解压到C:\Windows\System32路径下即可使用,或者将其配置到环境变量中亦可。