Deno #
什么是Deno? #
Deno是一个简单、现代且安全的JavaScript和TypeScript运行时,由Node.js的创始人Ryan Dahl于2018年创建。Deno基于V8引擎和Rust构建,旨在解决Node.js的设计缺陷,提供更安全、更简洁的开发体验。
Deno的优势 #
| 优势 | 说明 |
|---|---|
| 安全默认 | 默认禁止文件、网络、环境变量访问,需显式授权 |
| TypeScript原生支持 | 开箱即用的TypeScript支持,无需配置 |
| 单一可执行文件 | 无需node_modules,无复杂依赖管理 |
| 标准库 | 提供经过审核的标准库模块 |
| ES模块 | 使用标准的ES模块语法,支持URL导入 |
| 顶层await | 支持在模块顶层使用await |
| 内置工具 | 格式化、代码检查、测试、打包等工具内置 |
文档结构 #
本指南按以下结构组织,适合初学者按顺序学习:
1. 基础入门 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| Deno简介 | Deno的发展历史、特点、与Node.js对比 | deno-intro.md |
| 安装与配置 | 各平台安装、环境配置、版本管理 | deno-install.md |
| 第一个程序 | Hello World、运行脚本 | hello-world.md |
| 运行时与命令 | deno命令详解、常用选项 | deno-cli.md |
2. 数据类型 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 变量与常量 | let、const、var区别与使用 | variables.md |
| 基本数据类型 | string、number、boolean、null、undefined | basic-types.md |
| 类型转换 | 显式转换、隐式转换 | type-conversion.md |
| TypeScript类型 | 接口、类型别名、泛型 | typescript-types.md |
3. 运算符 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 算术运算符 | 加减乘除、取余、幂运算 | arithmetic-operators.md |
| 比较运算符 | 等于、不等于、大于小于、严格相等 | comparison-operators.md |
| 逻辑运算符 | &&、||、!、空值合并 | logical-operators.md |
| 位运算符 | 按位与或异或、移位 | bitwise-operators.md |
4. 控制流 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 条件语句 | if、if-else、if-else if | if-statement.md |
| switch语句 | switch-case、多分支选择 | switch-statement.md |
| 循环语句 | for、while、do-while、for…of、for…in | loops.md |
| 循环控制 | break、continue、标签语句 | loop-control.md |
5. 函数 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 函数基础 | 函数定义、参数、返回值 | function-basics.md |
| 箭头函数 | 箭头函数语法、this绑定 | arrow-functions.md |
| 函数参数 | 默认参数、剩余参数、解构参数 | function-parameters.md |
| 闭包 | 闭包原理、应用场景 | closures.md |
6. 模块系统 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| ES模块 | import/export语法 | es-modules.md |
| 导入导出 | 命名导出、默认导出、重导出 | import-export.md |
| URL导入 | 从URL直接导入模块 | url-imports.md |
| 导入映射 | import maps配置 | import-maps.md |
7. 异步编程 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| Promise基础 | Promise创建、链式调用、错误处理 | promise-basics.md |
| async/await | 异步函数、错误处理 | async-await.md |
| 异步迭代 | for await…of、异步生成器 | async-iteration.md |
| 并发控制 | Promise.all、Promise.race、并发限制 | concurrency.md |
8. 文件操作 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 文件读写 | Deno.readTextFile、Deno.writeTextFile | file-read-write.md |
| 目录操作 | 创建、遍历、删除目录 | directory-operations.md |
| 文件监控 | Deno.watchFs文件监控 | file-watcher.md |
| 流处理 | ReadableStream、WritableStream | streams.md |
9. 网络请求 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| fetch API | HTTP请求、响应处理 | fetch-api.md |
| HTTP服务 | Deno.serve创建HTTP服务器 | http-server.md |
| WebSocket | WebSocket服务端与客户端 | websocket.md |
| TCP/UDP | 底层网络编程 | tcp-udp.md |
10. Web开发 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| Fresh框架 | Deno官方Web框架 | fresh-framework.md |
| 路由处理 | 路由定义、动态路由 | routing.md |
| 中间件 | 中间件模式、请求处理链 | middleware.md |
| 模板渲染 | JSX、Preact组件 | templates.md |
11. 测试 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 测试基础 | Deno.test、测试组织 | test-basics.md |
| 断言 | assert断言库使用 | assertions.md |
| 测试覆盖率 | 覆盖率收集与分析 | coverage.md |
| 基准测试 | 性能基准测试 | benchmark.md |
12. 工具链 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| deno.json配置 | 项目配置文件详解 | deno-json.md |
| 代码格式化 | deno fmt使用 | formatting.md |
| 代码检查 | deno lint使用 | linting.md |
| 任务运行器 | deno task定义与运行 | task-runner.md |
13. 高级特性 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 权限系统 | 安全模型、权限标志 | permissions.md |
| Web Workers | 多线程编程 | web-workers.md |
| FFI接口 | 调用C/C++动态库 | ffi.md |
| KV存储 | Deno内置键值存储 | kv-storage.md |
14. 实战案例 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| CLI工具开发 | 命令行工具开发实战 | cli-tool.md |
| REST API服务 | 构建RESTful API | rest-api.md |
| 定时任务 | 定时任务与调度 | scheduled-tasks.md |
| 全栈应用 | Fresh全栈应用开发 | fullstack-app.md |
学习建议 #
初学者路线 #
text
基础入门 → 数据类型 → 运算符 → 控制流 → 函数
进阶路线 #
text
模块系统 → 异步编程 → 文件操作 → 网络请求 → Web开发
高级路线 #
text
测试 → 工具链 → 高级特性 → 实战案例
学习资源 #
- 官方文档:https://deno.land/manual
- 标准库:https://deno.land/std
- 模块仓库:https://deno.land/x
- API参考:https://doc.deno.land
开始学习 #
准备好了吗?让我们从 Deno简介 开始你的Deno学习之旅!
最后更新:2026-03-28