目录

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会处理这些指令,执行过程中的视频信号会交给显卡,显卡传给显示器,音频信号会交给声卡,声卡交给外部播放设备。最后,就会在显示器中显示这个游戏的运行界面。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏开发日志

我来为您逐行详细讲解这个 ViewMgr.cs 文件。这是一个Unity游戏中的视野管理系统,用于优化游戏性能。## 文件结构概览这个文件主要包含以下几个部分: 1. 数据结构和接口定义 2. 视野管理器 ViewMgr 类 3. 工具类 ViewTools让我逐行为您讲解:#…

使用 PlanetScope 卫星图像绘制水质参数:以莫干湖为例

1.数据采集 我使用ArcGIS Pro 中的Planet Imagery插件下载了 2023 年 6 月 25 日的安卡拉莫干湖卫星图像。 图 1:使用 Planet 插件下载卫星图像 图 2:下载图像的日期和传感器选择 我查阅的研究中指出,使用无降水时期的卫星图像对于水质测定…

Docker部署前后端分离项目——多项目共享环境部署

目录 一、简介 二、文件目录结构 三、前端部署流程(多nginx) 3.1 前端打包 3.2 编写部署文件——项目1(consult-system) 3.3 编写部署文件——项目2(person-system) 3.4 前端部署至linux服务器 3.5…

学习笔记(39):结合生活案例,介绍 10 种常见模型

学习笔记(39):结合生活案例,介绍 10 种常见模型线性回归只是机器学习的 “冰山一角”!根据不同的任务场景(分类、回归、聚类等),还有许多强大的模型可以选择。下面我用最通俗易懂的语言,结合生活案例&#…

BabyAGI 是一个用于自构建自主代理的实验框架

这个最新的 BabyAGI 是一个用于自构建自主代理的实验框架 核心是一个新的函数框架 (functionz),用于存储、管理和执行数据库中的函数。它提供了一个基于图形的结构,用于跟踪导入、依赖函数和身份验证密钥,并具有自动加…

商业秘密视域下计算机软件的多重保护困境

作者:邱戈龙、柯坚豪重庆商业秘密律师广东长昊律师事务所引言:计算机软件保护的复杂性 在商业秘密保护的宏大版图中,计算机软件因其技术密集性和创新性占据着特殊地位。软件的真正价值不仅在于其代码本身,更在于其背后的流程、逻…

深入理解 Spring Boot 自动配置原理

Spring Boot 之所以能“开箱即用”,其核心就在于 自动配置机制(Auto Configuration)。本文将深入剖析 Spring Boot 自动配置的工作原理,从注解入手,再到底层的源码机制,揭开 Spring Boot 背后的“魔法”。 …

Ubuntu18.04开机启动执行脚本

#!/bin/bash # 运行 .NET Core 应用程序 dotnet /home/bruce/atg/SmartConsole.dll &# 打开浏览器 firefox 给文件权限sudo chmod 777 start.sh运行gnome-session-properties打开系统自带的一个启动程序

c语言进阶 字符函数和字符串函数

字符函数和字符串函数字符函数和字符串函数1. strlenstrlen 函数详解模拟实现1.计数器方式2.不能创建临时变量计数器(递归)3.指针-指针的方式2. strcpystrcpy 函数详解模拟实现3. strcatstrcat 函数详解模拟实现4. strcmpstrcmp 函数详解模拟实现5. strn…

(LeetCode 每日一题) 1233. 删除子文件夹 (排序)

题目:1233. 删除子文件夹 思路:排序,时间复杂度0(L*nlogn)。 文件夹a的子文件b,b字符串字典序列一定是大于a的,所以直接将字符串数组folder升序排序。每次只需判断当前字符串,是否是父文件夹数组v最后一个…

集成算法学习bagging,boosting,stacking

baggibg(rf随机森林) adaboostibg 用来展示 Project Jupyter | Home 展示源码 Eclipse IDE | The Eclipse Foundation Eclipse 下载 |Eclipse 基金会 教程8-Adaboost决策边界效果_哔哩哔哩_bilibili (23 封私信) 图解机器学习神器:Scikit-Learn - 知乎 Baggi…

HOOPS SDK赋能PLM:打造全生命周期3D数据管理与协作能力

在制造业和工业领域,产品全生命周期管理(PLM) 已成为驱动企业数字化转型、提升创新力与运营效率的核心引擎。一个高效的PLM平台不仅需要管理海量的设计数据,还必须在设计、制造、供应链、销售和服务等多个环节之间无缝流转信息&am…

解决 Selenium 页面跳转过快导致的内容获取问题:从原理到实践

在使用 Selenium 进行网页自动化操作时,很多开发者都会遇到一个头疼的问题:页面还没加载完,代码就已经执行到下一句了。结果要么是元素找不到,要么是获取的内容不完整,甚至直接抛出异常。今天我们就来聊聊如何优雅地解…

【Python练习】051. 编写一个函数,实现简单的定时器功能

051. 编写一个函数,实现简单的定时器功能 051. 编写一个函数,实现简单的定时器功能 代码说明: 示例运行: 扩展功能 代码说明: 实现Python定时器的几种方法 051. 编写一个函数,实现简单的定时器功能 以下是一个简单的Python函数,用于实现定时器功能。这个定时器可以设置…

springboot基础-demo

1.创建学生信息表 create table stu(id int unsigned primary key auto_increment comment ID,name varchar(100) comment 姓名,age tinyint unsigned comment 年龄,gender tinyint unsigned comment 性别, 1:男, 2:女,score double(5,2) comment 成绩,phone varchar(11) comme…

关于transformer的一些疑点总结

残差连接的作用 Transformer中的残差连接(Residual Connection)是其深层架构能稳定训练的核心设计之一,主要通过以下机制发挥作用: 1. 缓解梯度消失,支持深层训练 梯度保护机制:在反向传播时,…

【终极指南】解决 Windows 11 更新后 Docker 连接 localhost 奇慢(卡顿、超时十几秒)的通用方案

聪明人能看得出这是 ai 写的,但也是我亲身实践的,最后让 ai 总结写了一篇,放心食用 一、 结论先行(直接用)问题现象: 升级到某个 Windows 11 版本后,在本地访问 Docker 容器中部署的任何服务&am…

Stream API

Java 8 引入的 Stream API 是处理集合数据的强大工具,它允许你以声明式方式处理数据集合,支持各种聚合操作和并行处理。以下是 Stream API 的核心知识点及具体代码示例: 1. Stream 概述 Stream 是数据渠道,用于操作数据源&#xf…

相机参数的格式与作用

在计算机视觉中,相机标定是非常重要的一步,主要目的是从图像中恢复出物体的三维信息。为了做到这一点,我们需要了解和使用一系列的数学工具,这些工具描述了相机的成像过程,包括相机的内参、外参、畸变系数、投影矩阵和…

【jvm|基本原理】第四天

摘要:本文简单分析了Java虚拟机的核心运行机制。首先介绍了基本数据类型在32位和64位虚拟机中的存储差异,说明slot槽设计以空间换时间的优化思路。其次详细解析了对象在堆内存中的存储结构,包括对象头、对象数据和对齐填充机制。然后探讨了方…