node.js学习笔记1
目录
Node.js是什么
Node.js下载与安装
Buffer缓冲区
一些计算机硬件基础
程序运行的基本流程
Node.js是什么
node.js是一个JavaScript运行环境,或者说,node.js是一个可以运行JavaScript的软件。
可以用于开发服务端、桌面端、工具类应用。
服务器端开发:对于一个上线的项目,光有服务器,是无法运行程序的,而node.js装在服务端,node.js可以接收客户端的请求,并把资源返回,使程序正常运行。
工具类应用:Webpack、Vite、Babel都是借助node.js实现的。
桌面端:VSCode、Postman、Figma都是借助于electron框架实现的,而electron是借助node.js实现的。
Node.js下载与安装
官网:Node.js — Download Node.js®
安装一路next就行了。
node.js没有图形化界面,需要通过命令行操作。
cmd敲node -v可以测试一下是否安装成功。
命令行命令一般结构:命令名称 参数
一些基础的命令:
dir 查看当前目录下的文件,只查看当前目录下的文件,不显示子文件
dir -s 查看目录下所有文件内容,包括子文件夹
cd 进入目录
./ 当前目录
../上一级目录
用命令行启动node.js文件
node.js文件为javascript格式,为xxx.js文件,
在命令行中进入xxx.js文件存放的目录,使用node xxx.js命令运行。
在VSCode的Terminal中敲node xxx.js也可以。
在Node.js中不能使用DOM和BOM的Api。
虽然Node.js可以运行JavaScript,但并非能够处理全部的Api,只能处理fs、url、http、console、path、定时器等Api。
在Node.js中,顶级对象不是window,而是global或globalThis。
Buffer缓冲区
Buffer是一个类似Array的对象。Buffer是一段固定长度的内存空间,用于处理二进制数据。
Buffer的大小固定,且不能调整。Buffer可以直接操作内存,所以性能很好。Buffer中每一个元素的大小是一字节。
创建Buffer
Buffer可以使用alloc、allocUnsafe、from创建。
alloc
alloc语法调用的是Buffer对象中的alloc方法,Buffer是Node.js内置对象。
语法是Buffer.alloc(创建的Buffer的字节数)
用alloc创建的Buffer每一位都是0
let buffer = Buffer.alloc(10);
allocUnsafe
allocUnsafe与alloc类似,语法是Buffer.allocUnsafe(创建的Buffer的字节数)。
但不同的是,用allocUnsafe生成的Buffer,可能会包含内存中的旧数据。
也就是说,内存空间是可以复用的,如果一个程序使用了一段内存空间,在这个程序运行完毕之后,allocUnsafe也访问了这段内存空间,allocUnsafe不会清空这段内存空间的数据,而是会直接复用。
allocUnsafe生成的Buffer中虽然会有意料之外的数据,但速度更快。
let buffer = Buffer.allocUnsafe(10);
from
用该语法,可以把字符串或数组转换为Buffer。
对于字符串,在转换时,每一个字母,会转换成Unicode(Ascii)码表(Unicode兼容Ascii)中对应的数字,再把数字转换成二进制,存到Buffer中。
let buffer = Buffer.from('hello world');
Buffer.from(字符串)可以把字符串转换成Buffer。
Buffer.toString(),可以把Buffer转换回字符串。
对于数组,Buffer会把数组中的每一项转换成二进制,然后存到Bufferr里。
读取Buffer中的数据
使用[下标]
let buffer = Buffer.from('hello world');
console.log(buffer);
console.log(buffer[0]);
console.log(buffer[0].toString(16));
可以使用[]访问数据、修改数据。
Buffer溢出
Buffer中一个位有一字节,一字节的范围是0-255,如果某个字节值的赋值超过了255,则Buffer在存储时会舍弃高位。把高于8位的二进制数字全部丢掉。
Buffer中文
如果Buffer.from中给的是中文,中文会按UTF-8处理,一个中文字占3字节。
一些计算机硬件基础
CPU:中央处理器,整个计算机运行和控制的中心。程序中的运算最终都是由CPU进行处理的。
内存:存储数据的介质。
硬盘:和内存很像,也可以存储数据。内存存储数据读写速度很快,但断电会丢失数据。硬盘读写速度慢,但断电不会丢失数据。对于一些需要长时间保存的数据,比如游戏数据、浏览器等等软件,应该放在硬盘里。
显卡:处理视频信号,当有信息需要在显示器呈现时,就会将信息对应的信号传给显卡,显卡处理完毕后再传给显示器,显示器最终显示。
声卡:处理声音信号,如果遇到声音信号需要播放,会把信号交给声卡,声卡把信号传给外部播放设备(耳机、音响)等。
主板:大的集成电路板,上面有很多插槽,CPU、内存、硬盘和显卡都是插在插槽上,通过主板连在一起。
机箱:把主板和一些其他计算机需要用到的硬件组装在一起。(其他计算机硬件,比如散热器:CPU运行会产生大量的热量,这个热量需要散走,否则会影响CPU速度,散热器有水冷和风冷等,散热器一般放在CPU旁边)。
外设:一些插在机箱上的外部设备,键盘、鼠标、音像、显示器等。
程序运行的基本流程
把硬件都组件完毕之后,计算机也不能完全正常运行。
除了硬件,计算机想运行还需要软件,也就是操作系统。
主流的操作系统有Windows、Linux、MacOS。
操作系统是一种应用程序,用来管理和调度硬件资源。操作系统可以决定让CPU执行哪个程序,可以进行磁盘操作,创建文件、删除文件等。
装系统:将操作系统程序安装到硬盘。
当装完系统,计算机就能正常启动了。
在这个流程中,硬盘会将操作系统相关的一些程序、文件载入到内容中。载入到内存之后,CPU就能运行了,在CPU运行的过程中,如果发现需要传输视频信号,有内容需要在显示器呈现,就会交给显卡处理,显卡处理完,就会交给显示器,显示器最后显示出页面。如果遇到声音信号需要播放,会把信号交给声卡,声卡把信号传给外部播放设备(耳机、音响)等。
在打开电脑之后,应用程序是如何运行的呢?比如说我们想玩一个游戏,这个游戏如何运行。首先我们会把这个游戏的安装包下载到电脑上,再运行安装包,一般是把这个软件安装到硬盘上(但有时候也会安装到软盘上)。点击游戏的图标进行启动,双击图标之后,发生的事情和启动操作系统差不多。首先硬盘会把和游戏相关的程序载入到内存,然后如果有指令需要运行,CPU会处理这些指令,执行过程中的视频信号会交给显卡,显卡传给显示器,音频信号会交给声卡,声卡交给外部播放设备。最后,就会在显示器中显示这个游戏的运行界面。