Nodejs基础知识100问

1 nodejs是服务端运行js代码,相当于Java中的jvm,python中的python安装包

  • 原始类型 :String、Number、Boolean、Null、Undefined、Symbol(ES6新增)
  • 引用类型 :Object、Array、Function等
  • 弱类型特性 :与JavaScript一致,无需声明变量类型,使用var/let/const即可声明任何类型

方法function、类、模块 、 包

**方法:**箭头函数与普通函数的区域在于this指针,不绑定自己的this,会捕获外层作用域的this

模块: 定义与python一样,就是一个js文件(py文件),包含两种导入导出规范require module.exports和ES中import/export语法。实际上就相当于Java中的public和private,nodejs不采用修辞符,采用专用的导出语法,供其他文件引入。

包: 一般是指第三方别人写的模块,可以通过npm下载到本地项目,通过require 直接导入,包的目录结构是一个文件夹里面package.json和index.js(包的入口文件)

2 全局对象,变量有哪些

Global(浏览器中是Windows),process

__filename

__dirname

3 Npm有哪些指令(相当于Java中的maven,python中的pip)

命令类别 常用命令示例 主要用途说明
项目初始化 npm init 初始化项目,创建 package.json 文件使用 -y 可快速按默认配置生成
包安装 npm install <package_name> 安装指定包到当前项目的 node_modules 目录
npm install 根据 package.json 安装所有项目依赖
npm install -g <package_name> 全局安装包,通常用于命令行工具
依赖管理 npm uninstall <package_name> 卸载指定的包
npm update 更新所有包至符合 package.json 约束的最新版本。
npm outdated 检查有哪些过时的包。
npm list 列出已安装的依赖关系树。
脚本执行 npm run <script_name> 运行在 package.jsonscripts 字段中定义的脚本。
包发布 npm publish 将当前项目发布到 npm 仓库
信息查看 npm search <keyword> 在 npm 仓库中搜索包
npm info <package_name> 查看某个包的详细信息
配置管理 npm config set <key> <value> 设置配置项,例如切换镜像源:npm config set registry https://registry.npmmirror.com
npm config list 列出所有当前的配置

3 async用于定义返回对象为promise,await是等待异步完成,两者要配合一起使用

4 对象与map的区别:对象是key只能是字符串,而map中的key没有任何限制

5 在ECMAScript规范中,省略号(...)主要有两个重要用途:展开语法(Spread syntax)剩余参数(Rest parameters)

复制代码
// 对象浅拷贝
const originalObj = { name: "John", age: 30 };
const copyObj = { ...originalObj };

6 package-lock.json 是 npm(Node.js 的包管理器)自动生成的一个文件,它的主要作用是精确锁定当前项目所依赖的每一个 npm 包的版本以及其依赖关系的完整树结构。package.json 中的版本号通常使用灵活的范围标识符(例如 ^ 或 ~)。

核心作用

  1. 版本锁定

· 它记录了通过 npm install 安装的每个包的确切版本号,而不是像 package.json 中那样可以使用语义化版本范围(如 ^1.2.3)。

· 这确保了无论你何时在何处运行 npm install,安装的都是完全相同版本的依赖包。

  1. 依赖树锁定

· 它不仅仅锁定直接依赖(你在 package.json 的 dependencies 和 devDependencies 里声明的包),还锁定了这些依赖包自己的依赖(即间接依赖、嵌套依赖)的版本和结构。

· 这解决了"在我的机器上能运行,在你的机器上就不行"的问题,因为整个依赖树都被固定了。

  1. 保证依赖完整性

· 文件里包含了每个包的下载地址(resolved)和完整性校验值(integrity)。npm 在安装时会使用这个校验值来验证下载的包是否被篡改过,确保了依赖包的完整性和安全性。

7 create-vue 和 Vue CLI 有什么区别?

主要区别在于底层构建工具。Vue CLI 基于 Webpack,而 create-vue 基于 Vite。Vite 在开发阶段提供了更快的启动速度和热更新。Vue 官方现在更推荐使用 create-vue。通过create-vue生成的项目具有清晰的结构:

· src/main.js:应用的入口文件,在这里创建 Vue 应用实例并挂载到 DOM。

· src/App.vue:应用的根组件。

· vite.config.js:Vite 的配置文件,你可以在这里定义构建相关选项。

· package.json:记录项目的依赖和脚本

8 使用 Node.js 开发图形用户界面(GUI)应用程序,主要有两种思路:一种是基于 Chromium 内核和 Node.js 运行时的跨平台桌面应用框架,另一种是追求更小体积和更高性能的替代方案。为了帮助你快速了解,我先用一个表格来概括主流的 Node.js GUI 方案:

方案类型 框架名称 主要特点 技术栈

🌐 Web技术驱动 Electron 市场占有率高、生态成熟、社区活跃、学习资源丰富 Chromium + Node.js + 前端三件套

Tauri 使用系统 WebView,体积更小,内存占用更低,性能更佳 (Rust 核心) WebView + Rust + 前端三件套

相关推荐
|晴 天|2 小时前
Vite 为何能取代 Webpack?新一代构建工具的崛起
前端·webpack·node.js
f***58982 小时前
最新最详细的配置Node.js环境教程
node.js
y***86695 小时前
JavaScript在Node.js中的Electron
javascript·electron·node.js
lpfasd1235 小时前
Windows下使用nvm-windows管理Node.js版本及npm配置全指南
windows·npm·node.js
p***h64315 小时前
JavaScript在Node.js中的异步编程
开发语言·javascript·node.js
q***385117 小时前
TypeScript 与后端开发Node.js
javascript·typescript·node.js
q***098020 小时前
Windows 11 如何配置node.js
windows·node.js
pixle020 小时前
从零学习Node.js框架Koa 【六】Koa文件上传下载实现:@koa/multer 与 koa-send 深度解析
node.js·web·koa·js·全栈·服务端·文件上传下载
q***471821 小时前
Windows 上彻底卸载 Node.js
windows·node.js