Node.js 基础学习

news2025/1/15 6:50:47

文章目录

  • 1. Node.js
    • 1.1 是什么?
    • 1.2 作用
  • 2. 命令行工具
    • 2.1 命令的结构
    • 2.2 常用命令
  • 3. Node.js 注意点
    • 3.1 Node.js 中不能使用DOM 和BOM 的API
    • 3.2 Node.js 中顶级对象叫做global
  • 4. Buffer
    • 4.1 Buffer 特点
    • 4.2 Buffer 创建方式
    • 4.3 Buffer 操作与注意点
  • 5. 计算机基础
    • 5.1 计算机基本组成
    • 5.2 程序执行的基本流程
    • 5.3 进程和线程

1. Node.js

1.1 是什么?

Node.js是一个开源的,跨平台的JavaScript运行环境
通俗来讲,Node.js就是一款应用程序,是一款软件,它可以运行JavaScript

1.2 作用

  1. 开发服务器应用
    在这里插入图片描述
    在这里插入图片描述

  2. 开发工具类应用
    在这里插入图片描述

  3. 开发桌面端应用
    在这里插入图片描述

2. 命令行工具

2.1 命令的结构

在这里插入图片描述
在这里插入图片描述
// 这两行代码称为命令
// 前者为命令名称
// 后者url 成为命令参数

2.2 常用命令

  1. 切换盘符
    C:
    D:
  2. 切换工作目录
    cd
  3. 查看目录文件
    dir

怎么去执行node.js 文件 :

  1. 第一种方法是win + R 打开命令行窗口,通过命令执行文件;
  2. 第二种方法是在VSCode 中右击文件选择再集成终端打开,就可以执行文件;
  3. 还有就是可以使用Code Runner插件,点击右上角播放按钮直接就可以执行文件

3. Node.js 注意点

3.1 Node.js 中不能使用DOM 和BOM 的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();
// 以上代码都是无法执行的 因为Node.js 中没有相应的API

3.2 Node.js 中顶级对象叫做global

浏览器的顶级对象为window ;而Node.js 中顶级对象叫做global。

另外,ES2020 中提出的globalThis 对象和Node.js 中的global 对象指向是一样的,也就是可以通过globalThis 访问顶级对象。

console.log(globalThis ===global);
// true

4. Buffer

Buffer 中文译为缓冲区,是一个类似于Array 的对象,用于表示固定长度的字节序列;
Buffer 本质是一段内存空间,专门用来处理二进制数据。

4.1 Buffer 特点

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

4.2 Buffer 创建方式

  1. alloc
let buf = Buffer.alloc(10);
console.log(buf);
// <Buffer 00 00 00 00 00 00 00 00 00 00>

这种方式创建的Buffer 位置都会归为0!

  1. allocUnsafe
let buf_2 = Buffer.allocUnsafe(10);
console.log(buf_2);
// <Buffer 00 00 00 00 00 00 00 00 00 00>

与前者相比,后者创建的Buffer 可能会包含旧的内存数据,并且每次创建的Buffer 数据可能都不一样;

补充:
在这里插入图片描述
内存空间是可以进行复用的,比如说A 使用过一部分内存空间后,B复用该部分内存空间,所以allocUnsafe 创建Buffer 就可能出现就旧数据。

但是allocUnsafe 创建Buffer 速度要比alloc 更快,因为allocUnsafe 不需要进行数据归零的操作。

  1. from
let buf_3 = Buffer.from('hello');
console.log(buf_3);
// <Buffer 68 65 6c 6c 6f>

补充 – <Buffer 68 65 6c 6c 6f> 是怎么出现的?
字符中字母对应ASCII 码的十六进制数,比如h ASCII 码的十六进制数就为68

4.3 Buffer 操作与注意点

  1. Buffer 与字符串的转换
let buf_4 = Buffer.from([105,108,111,118,101,121,111,117]);
console.log(buf_4.tostring()); // iloveyou
// toString() 是默认按照UTF-8的编码方式进行转换的

  1. 我们上面提到Buffer 是数组形式,那么就可以通过数组字面量进行查询数据,
let buf = Buffer.from('hello');
console.log(buf[0]);
// 104
console.log(buf[0].toString(2));
// 01101000

也可以通过数组字面量对数组数据进行修改,

buf[0] = 95;
console.log(buf.toString());
// _ello
  1. 溢出(了解即可)
    二进制中最大数据1111 1111 转换为十进制是255,也就是说如果存储的数据超过255就会出现溢出的情况,那么就会舍弃高位的数字
let buf = Buffer.from('hello');
buf[0] = 361;
//舍弃高位的数字0001 0110 1001 => 0110 1001
  1. 中文
let buf = Buffer.from('你好');
console.log(buf);

UTF-8 的中文一般是占三个字节,也就是‘你’ 占三个,‘好’ 占三个。

5. 计算机基础

5.1 计算机基本组成

在这里插入图片描述
内存:读写速度较快,断电丢失数据

硬盘:读写速度较慢,断电不丢失数据
在这里插入图片描述
显卡:
在这里插入图片描述

5.2 程序执行的基本流程

常见操作系统:
在这里插入图片描述
操作系统启动过程:
在这里插入图片描述
应用程序运行流程:
在这里插入图片描述
操作系统和应用程序的操作流程大体上来说是一致的,都是先将相关的程序从硬盘中获取加载在内存中,这样CPU就可以进行运行了,遇到视频信号时就交由显卡处理,最终在显示器上显示;遇到声音信号就交由声卡处理,最后呈现出来。

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

5.3 进程和线程

进程:进行中的程序,也可以说是程序的一次执行过程;
查看进程:
在这里插入图片描述

线程:是一个进程中执行的一个执行流,一个线程是属于某个进程的。

线程和进程的关系
在这里插入图片描述
进程就相当于整个营业中的蜜雪冰城商店,而线程就可以理解为员工进行工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1609072.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rust入门-引用借用

一、引用借用&#xff0c;是什么、为什么、怎么用 所有权上篇我们已经讨论过了&#xff0c;所以这篇我们讨论Rust的引用借用 1、引用借用 是什么&#xff1f; Rust 通过借用(Borrowing) 这个概念来达成上述的目的&#xff0c;获取变量的引用&#xff0c;称之为借用(borrowin…

CERLAB无人机自主框架: 1-环境搭建

前言&#xff1a;更多更新文章详见我的个人博客主页【MGodmonkeyの世界】 描述&#xff1a;欢迎来到CERLAB无人机自主框架&#xff0c;这是一个用于自主无人飞行器 (UAV) 的多功能模块化框架。该框架包括不同的组件 (模拟器&#xff0c;感知&#xff0c;映射&#xff0c;规划和…

【数据结构-串-数组-广义表】

目录 1 串-理解1.1 串的抽象定义&#xff1a;-理解1.2 串的存储结构-不断掌握1.2.1 顺序存储结构&#xff1a;1.2.2 链式存储结构&#xff1a; 1.3 串的模式匹配算法&#xff1a;-掌握1.3.1 BF暴力求解算法-代码 -掌握1.3.2 KMP求解算法-代码--掌握 2 数组-不断掌握2.1 顺序存储…

vue-cli2 与vue-cli3,vue2与vue3 初始化项目,本地vue项目,详细解析区别(2024-04-19)

目录 1、区别&#xff08;vue-cli2 与 vue-cli3 &#xff09; 2、例子1&#xff08;vue2项目&#xff09; 2.1 版本与命令行 2.2 项目本地截图 2.3 项目文件解析 &#xff08;1&#xff09;package.json 文件 &#xff08;2&#xff09;webpack.dev.conf.js文件 &#…

PTA图论的搜索题

目录 7-1 列出连通集 题目 输入格式: 输出格式: 输入样例: 输出样例: AC代码 7-2 六度空间 题目 输入格式: 输出格式: 输入样例: 输出样例: 思路 AC代码 7-3 地下迷宫探索 题目 输入格式: 输出格式: 输入样例1: 输出样例1: 输入样例2: 输出样例2: 思路 …

股票战法课程之主力的痕迹

文章目录 1. 主力的操作痕迹2. 主力的建仓2.1 建仓的三种方式2.2 建仓的五个特点2.3 建仓的迹象2.4 建仓的成交量特征 1. 主力的操作痕迹 序号痕迹原因1不跟随大盘节奏筹码都在主力手中2突发利空消息&#xff0c;股价不跌反涨主力被套&#xff0c;不希望散户抛盘3很小的成交量…

【初识Qt】如何使用QtCreator创建项目

文章目录 1 :peach:Qt Creator 概览:peach:2 :peach:使⽤ Qt Creator 新建项目:peach:2.1 :apple:新建项目:apple:2.2 :apple:使用标签实现 Hello World 程序:apple:2.2.1 :lemon:纯代码方式实现:lemon:2.2.2 :lemon:可视化操作实现:lemon: 2.3 :apple:使用按钮实现 Hello Worl…

vue element-ui 表格横向滚动条在合计项下方

目前效果 需求效果 1.隐藏bodyWrapper滚动条&#xff0c;显示footerWrapper滚动条 css代码如下&#xff1a; div ::v-deep .el-table--scrollable-x .el-table__body-wrapper{overflow-x: hidden!important;z-index: 2!important;} div ::v-deep .el-table__footer-wrapper …

WWW ‘24 | EarnMore: 如何利用强化学习来处理可定制股票池中的投资组合管理问题

WWW 24 | EarnMore: 如何利用强化学习来处理可定制股票池中的投资组合管理问题 原创 QuantML QuantML 2024-04-16 09:04 上海 Content 本文主要探讨了如何利用强化学习&#xff08;Reinforcement Learning, RL&#xff09;来处理可定制股票池&#xff08;Customizable Stock …

关于RA8900CE时钟芯片的使用注意事项

在快节奏的现代社会&#xff0c;时间变得越来越宝贵。对于时钟的电子设计&#xff0c;高精度且低功耗逐渐成为主流。我们就有一个汽车显示屏的时钟显示项目&#xff0c;要求时钟一天的误差控制在1s以内。要想达到此要求&#xff0c;则必须满足晶振的频率偏差PPM<1/60/60/24*…

【Hadoop大数据技术】——Sqoop数据迁移(学习笔记)

&#x1f4d6; 前言&#xff1a;在实际开发中&#xff0c;有时候需要将HDFS或Hive上的数据导出到传统关系型数据库中&#xff08;如MySQL、Oracle等&#xff09;&#xff0c;或者将传统关系型数据库中的数据导入到HDFS或Hive上&#xff0c;如果通过人工手动进行数据迁移的话&am…

微博聚类文本分析和可视化

本文使用python抓取微博数据并对微博文本分析和可视化&#xff0c;LDA&#xff08;树图&#xff09;、关系图、词云、时间趋势&#xff08;折线图&#xff09;、热度地图、词典情感分析&#xff08;饼图和3D柱状图&#xff09;、词向量神经网络情感分析、tfidf聚类、词向量聚类…

go语言并发实战——日志收集系统(四) 利用tail包实现对日志文件的实时监控

Linux中的tail命令 tail 命令是一个在 Unix/Linux 操作系统上用来显示文件末尾内容的命令。它可以显示文件的最后几行内容&#xff0c;默认情况下显示文件的最后 10 行。tail 命令 非常有用&#xff0c;特别是在我们查看日志文件或者监视文件变化时。 基本用法如下&#xff1a…

搭建sql-lab出现的php不兼容

下载不了的时候&#xff0c;直接打开该网址下载5.xphp版本&#xff0c;解压到C:\php_studyv8\phpstudy\phpstudy_pro\Extensions\php&#xff08;可能路径都不一样&#xff0c;找到Extensions\php放到该目录下&#xff09;

Excel模板导入、导出工具类

1.引入maven依赖&#xff0c;利用hutool的excel读取 Hutool-poi对excel读取、写入 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency> <depen…

期权小知识科普

期权的交易时间 上交所期权合约的交易时间为每个交易日9:15至9:25、9:30至11:30、13&#xff1a;00至15:00。 其中&#xff0c;9:15至9:25为开盘集合竞价时间&#xff0c;14:57-15:00为收盘集合竞价时间&#xff0c;其余时段为连续竞价时间&#xff0c;交易所规则另有规定的除…

后台管理系统加水印(react)

效果 代码图片 代码 window.waterMark function (config) {var defaultConfig {content: 我是水印,fontSize: 16px,opacity: 0.3,rotate: -15,color: #ADADAD,modalId: J_waterMarkModalByXHMAndDHL,};config Object.assign({}, defaultConfig, config);var existMarkModal…

Hadoop3:大数据的基本介绍

一、什么是大数据 1、大数据的4v特点 Volume&#xff08;大量&#xff09; Velocity&#xff08;高速&#xff09; Variety&#xff08;多样&#xff09; Value&#xff08;低价值密度&#xff09; 2、大数据部门间的工作岗位 第三部分&#xff0c;其实就是JavaWeb 二、…

李沐53_语言模型——自学笔记

语言模型 1.预测文本序列出现的概率 2.应用在做预训练模型 3.生成文本&#xff0c;给定前面几个词&#xff0c;不断生成后续文本 4.判断多个序列中哪个更常见 真实数据集的统计 《时光机器》数据集构建词表&#xff0c; 并打印前10个最常用的&#xff08;频率最高的&…

4.4 @ControllerAdvice全局数据处理

顾名思义&#xff0c;&#xff20;ControllerAdvice 就是&#xff20;Controller 增强版。&#xff20;ControllerAdvice 主要用来处理全 局数据 ,一般搭配&#xff20;ExceptionHandler、&#xff20;ModelAttribute 及&#xff20;InitBinder 使用。 1. 全局异常处理&#x…