JavaScript 执行环境介绍
JavaScript 本身是作为一种能够在浏览器中增强用户交互的脚本语言来使用, 随着社区的发展, Chrome浏览器的V8引擎单独移植出来,在此基础之上, 为其上层的JavaScnpr提供了友好的API, 且开源免费, 使其能够与操作系统交互, 也就是所此时的 js 已经不仅仅是只 是用于浏览器增强用户交互, 还可以进行服务端编程, 而这个运行环境就是知名的 NodeJS, 再后来社区又诞生了更多的运行环境 如比较知名的有:
这也就是说, 同一份代码, 既可以在浏览器中运行, 也能脱离浏览器使用其他运行环境来运行
这也同时带来了一个问题: 并不是所有的浏览器API在 Nodejs 中都支持
API 主要分类两类
- 内置API: 不论在浏览器还是在nodejs环境中都可以使用的 API
- 特定环境的API: 只有在特定环境才能使用的API, 比如在 nodejs 中才有的
fs, 只在浏览器中可使用的document等
由于 deno 和 bun 都是后来者, 基本 node 的 api 在这些环境中都有兼容, 实在没有的, 就需要查看文档
内置 API
全局对象
值
函数
基本对象
数字和日期
字符串处理
索引集合
键值集合
结构化数据
抽象控制对象
Web API
HTML5 Web API 是一组用于构建Web应用程序的API集合,它们为Web开发者提供了更多的功能以增强用户体验
这些API允许Web应用执行更复杂的任务,如离线存储,访问设备硬件(例如摄像头和麦克风), 绘制图形, 播放音频和视频等
在线 MDN 文档
https://developer.mozilla.org/zh-CN/docs/Web/API
API 功能简单介绍
中断请求API AbortController 和 AbortSignal
注释节点构造器 Comment
自定义事件构造器 CustomEvent
文档对象构造器 Document
文档碎片构造器 DocumentFragment
DOM 异常 DOMException
可将一个 xml/html 字符串解析为 Document 的解析器 DOMParser
表示一组空格分隔的标记, 比如 element.classList DOMTokenList
Node接口 和 NodeList 节点集合 都是比较底层的基类
用户交互事件相关
输出调试内容到开发者工具栏 Console API
老异步请求接口: XMLHttpRequest 新异步请求接口: Fetch
交叉观察器API 可用于检测元素是否可见(在视口中)
NodeJS API
Node.js 是一个开源, 跨平台的 JavaScript 运行环境, 它允许开发者使用JavaScript编写服务器端的应用程序, Node.js 是基于 Chrome V8 引擎构建的, 这意味着它能够快速执行JavaScript代码