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.json 的 scripts 字段中定义的脚本。 |
| 包发布 | 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 中的版本号通常使用灵活的范围标识符(例如 ^ 或 ~)。
核心作用
- 版本锁定
· 它记录了通过 npm install 安装的每个包的确切版本号,而不是像 package.json 中那样可以使用语义化版本范围(如 ^1.2.3)。
· 这确保了无论你何时在何处运行 npm install,安装的都是完全相同版本的依赖包。
- 依赖树锁定
· 它不仅仅锁定直接依赖(你在 package.json 的 dependencies 和 devDependencies 里声明的包),还锁定了这些依赖包自己的依赖(即间接依赖、嵌套依赖)的版本和结构。
· 这解决了"在我的机器上能运行,在你的机器上就不行"的问题,因为整个依赖树都被固定了。
- 保证依赖完整性
· 文件里包含了每个包的下载地址(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 + 前端三件套