Skip to content

JavaScript 执行环境介绍

JavaScript 本身是作为一种能够在浏览器中增强用户交互的脚本语言来使用, 随着社区的发展, Chrome浏览器的V8引擎单独移植出来,在此基础之上, 为其上层的JavaScnpr提供了友好的API, 且开源免费, 使其能够与操作系统交互, 也就是所此时的 js 已经不仅仅是只 是用于浏览器增强用户交互, 还可以进行服务端编程, 而这个运行环境就是知名的 NodeJS, 再后来社区又诞生了更多的运行环境 如比较知名的有:

这也就是说, 同一份代码, 既可以在浏览器中运行, 也能脱离浏览器使用其他运行环境来运行

这也同时带来了一个问题: 并不是所有的浏览器API在 Nodejs 中都支持

API 主要分类两类

  • 内置API: 不论在浏览器还是在nodejs环境中都可以使用的 API
  • 特定环境的API: 只有在特定环境才能使用的API, 比如在 nodejs 中才有的 fs, 只在浏览器中可使用的 document

由于 denobun 都是后来者, 基本 node 的 api 在这些环境中都有兼容, 实在没有的, 就需要查看文档

内置 API

全局对象

函数

基本对象

数字和日期

字符串处理

索引集合

键值集合

结构化数据

抽象控制对象

Web API

HTML5 Web API 是一组用于构建Web应用程序的API集合,它们为Web开发者提供了更多的功能以增强用户体验

这些API允许Web应用执行更复杂的任务,如离线存储,访问设备硬件(例如摄像头和麦克风), 绘制图形, 播放音频和视频等

在线 MDN 文档

https://developer.mozilla.org/zh-CN/docs/Web/API

API 功能简单介绍

  1. 中断请求API AbortControllerAbortSignal

  2. 注释节点构造器 Comment

  3. 自定义事件构造器 CustomEvent

  4. 文档对象构造器 Document

  5. 文档碎片构造器 DocumentFragment

  6. DOM 异常 DOMException

  7. 可将一个 xml/html 字符串解析为 Document 的解析器 DOMParser

  8. 表示一组空格分隔的标记, 比如 element.classList DOMTokenList

  9. 元素基类 HTML标签基类 SVG 元素基类

  10. 事件对象基类事件源对象基类 都是用于处理事件相关内容

  11. 监听DOM变化监听DOM变化产生的记录

  12. Node接口NodeList 节点集合 都是比较底层的基类

  13. 用户交互事件相关

  14. 输出调试内容到开发者工具栏 Console API

  15. 老异步请求接口: XMLHttpRequest 新异步请求接口: Fetch

  16. 操作系统剪切板API

  17. 文件上传相关API

  18. 浏览器全屏API

  19. 浏览器拖放API

  20. 不同文档通信交互API, 如当前 document 和 iframe 中的 document

  21. 创建唯一 URL 和 url 字符串处理

  22. 浏览器本地存储

  23. 自定义元素相关API

  24. 测试web应用性能的API

  25. 后台线程运行脚本API

  26. 用于在客户端存储大量的结构化数据API

  27. 监听元素大小变化API

  28. 操作鼠标选中内容API

  29. 交叉观察器API 可用于检测元素是否可见(在视口中)

  30. 浏览器中渲染 3D 图形API

  31. 操作CSS样式表相关API

NodeJS API

Node.js 是一个开源, 跨平台的 JavaScript 运行环境, 它允许开发者使用JavaScript编写服务器端的应用程序, Node.js 是基于 Chrome V8 引擎构建的, 这意味着它能够快速执行JavaScript代码

在线中文文档

NodeJS 常用模块

  1. 命令行参数
  2. 输出调试信息到控制台
  3. 文件系统
  4. 路径操作
  5. HTTP服务器
  6. 网络相关API
  7. URL字符串操作API
  8. GET请求查询参数字符串API
  9. 系统功能API
  10. 定时器
  11. 二进制流API
  12. 网络流API
  13. 错误处理API
  14. 全局对象API
  15. 事件触发(发布订阅模式)API
  16. 单步调试
  17. 子进程API
  18. 当前进程信息API

Released under the MIT License.