Nodejs基础1之基础知识、Buffer缓冲区、计算机基础

2023-12-28 17:01:37

基础知识

nodejs应用

  1. 开发服务器应用(写网页的后端)
  2. 开发工具类应用(基于nodejs开发的webpack、vite、babel)
  3. 开发桌面端应用(借助于nodejs的electron框架)
    (1)VSCode
    (2)Figma
    (3)Postman
    请添加图片描述

nodejs的安装

nodejs官网
请添加图片描述
nodejs中文网站
请添加图片描述

nodejs历史版本

请添加图片描述
注:pkg是mac电脑的

安装成功:
请添加图片描述

nodejs初体验

hello程序

请添加图片描述

nodejs注意事项

  1. node.js中不能使用BOM和DOM的API
    浏览器中的JavaScript
    在这里插入图片描述
    Node.js中的JavaScript
    在这里插入图片描述
  • 不能使用的
//BOM
console.log(window)
console.log(history)
console.log(navigator)
console.log(location)
//DOM
console.log(document)
//AJAX
let xhr=new XMLHttpRequest()

在这里插入图片描述
以上都不能使用,都会像上面一样报错

  • 可以使用的
console.log("i love you")
setTimeout(()=>{
    console.log("love you")
},1000)

在这里插入图片描述

  1. Node.js中的顶级对象为global,也可以用globalThis访问顶级对象
//global 顶级对象
console.log(global)
console.log(globalThis)  //ES2020
console.log(globalThis===global) //ES2020

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Buffer缓冲区

概念

Buffer中文译为【缓冲区】,是一个类似于Array的对象,用于表示固定长度的字节序列
换句话说,Buffer就是一段固定长度的内存空间,用于处理二进制数据
在这里插入图片描述

特点

  1. Buffer大小固定且无法调整
  2. Buffer性能较好,可以直接对计算机内存进行操作
  3. 每个元素的大小为1字节(byte)请添加图片描述

使用

基本使用

  1. Buffer.alloc
    创建了一个长度为10字节的Buffer,相当于申请了10字节的内存空间,每个字节的值为0
  2. 创建了一个长度为10字节的Buffer,Buffer中可能存在旧的数据,可能会影响执行结果,所以叫unsafe
  3. 通过字符串创建 Buffer
  4. 通过数组创建 Buffer
// 1、alloc 创建一个10字节的数组
let buf=Buffer.alloc(10)
console.log(buf)

// 2、allocUnsafe   创建时候不清空原有的内存空间,直接创建并使用
let buf_2=Buffer.allocUnsafe(10000)
console.log(buf_2)

// 3、from 字母转成ASCII码,再转换为十六进制
let buf_3=Buffer.from('hello')
console.log(buf_3)

// 数组的每一个数字转换为十六进制
let buf_4=Buffer.from([102,103,104])
console.log(buf_4)

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

Buffer与字符串的转化与读写

  1. 我们可以借助toString的方法将Buffer转为字符串

toString默认是按照 uft-8 编码方式进行转换的

  1. Buffer的读写
    Buffer可以直接通过 [ ] 的方式对数据进行处理
//buffer与字符串的转换
let buf=Buffer.from([105,108,111,118,101,121,111,117])
console.log(buf)
console.log(buf.toString())   //utf-8

// []
let buf_2=Buffer.from('hello')
console.log('buf_2[0].toString(2)',buf_2[0].toString(2))  //转成二进制  01101000
console.log('buf_2',buf_2)
buf_2[0]=95
console.log('buf_2',buf_2)
console.log('buf_2.toString()',buf_2.toString())

在这里插入图片描述

注意:

  • 溢出
//溢出
let buf=Buffer.from('hello')
buf[0] =361  //溢出,一个字节最多存8位数,最大值为 11111111 => 255
            // 做法:舍弃高位数字 361:0001 0110 1001 => 0110 1001, 十六进制:69
console.log(buf)

在这里插入图片描述

  • 中文
//中文
let buf=Buffer.from('中文')  //uft-8的中文 一个中文占3个字节
console.log(buf)

在这里插入图片描述

计算机基础

计算机启动的基本过程

在这里插入图片描述

程序一般保存在硬盘中,软件安装的过程就是将程序写入硬盘的过程。
程序在运行时会加载进入内存,然后由 CPU 读取并执行程序

进程与线程

进程

进程是程序的一次执行过程
在这里插入图片描述

线程

线程是一个进程中执行的一个执行流
一个线程是属于某个进程的
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_34306228/article/details/135170466
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。