Web API 是浏览器提供的接口集合,非 JavaScript 语言内置;fetch、document、localStorage 等均属 Web API,由浏览器注入全局对象提供,而 JS 引擎仅执行语法,不处理页面、网络等能力。
Web API 不是 JavaScript 语言的一部分,而是浏览器提供的、供 JS 调用的接口集合。你写的 fetch()、document.getElementById()、localStorage.setItem() 全部来自 Web API,不是 JS 引擎内置的。
JavaScript 引擎(比如 V8)只管执行 JS 语法:变量、函数、循环、Promise 等。它不理解“页面”“按钮”“网络请求”——这些能力全靠浏览器在 JS 运行时注入全局对象:window、document、navigator、fetch、setTimeout……它们才是 Web API 的入口。

document 或 fetch(原生),因为它没实现 Web API,只有 CommonJS / Node.js APIconsole.log 看似“JS 自带”,其实是浏览器通过 Web API 注入的,不是语言规范要求的Array.prototype.map 这类东西;Element.addEventListener 是 DOM API,属于 Web 标准,但独立于 ES新手常以为“能写出来就能跑”,结果卡在时机、作用域或隐式转换上:
document.getElementById('myBtn') 返回 null?大概率是脚本执行时 DOM 还没加载完——把 JS 放在