Web API 是浏览器提供的接口集合,非 JavaScript 语言内置;fetch、document、localStorage 等均属 Web API,由浏览器注入全局对象提供,而 JS 引擎仅执行语法,不处理页面、网络等能力。

Web API 不是 JavaScript 语言的一部分,而是浏览器提供的、供 JS 调用的接口集合。你写的 fetch()、document.getElementById()、localStorage.setItem() 全部来自 Web API,不是 JS 引擎内置的。
Web API 和 JavaScript 引擎根本不是一回事
JavaScript 引擎(比如 V8)只管执行 JS 语法:变量、函数、循环、Promise 等。它不理解“页面”“按钮”“网络请求”——这些能力全靠浏览器在 JS 运行时注入全局对象:window、document、navigator、fetch、setTimeout……它们才是 Web API 的入口。
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它不是新的编程语言,而是一种使用现有标准的新方法,最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。《php中级教程之ajax技术》带你快速
- Node.js 没有
document或fetch(原生),因为它没实现 Web API,只有 CommonJS / Node.js API -
console.log看似“JS 自带”,其实是浏览器通过 Web API 注入的,不是语言规范要求的 - ES 规范只定义
Array.prototype.map这类东西;Element.addEventListener是 DOM API,属于 Web 标准,但独立于 ES
最常误用的三个 Web API 场景
新手常以为“能写出来就能跑”,结果卡在时机、作用域或隐式转换上:
-
document.getElementById('myBtn')返回null?大概率是脚本执行时 DOM 还没加载完——把 JS 放在










