信息发布→ 登录 注册 退出

什么是Javascript的Web API及其常见接口的使用?

发布时间:2026-01-10

点击量:
Web API 是浏览器提供的原生接口集合,非 JavaScript 语言本身;包括 DOM 操作、fetch、localStorage 等,脱离浏览器(如 Node.js)即不可用;需注意 null 安全、NodeList 转换、样式修改方式、fetch 错误处理、存储序列化及 API 兼容性。

Web API 不是 JavaScript 语言本身的一部分,而是浏览器提供的、供 JS 调用的原生接口集合;它让 JS 能操作 DOM、发起网络请求、管理存储、控制媒体等——离开浏览器环境(比如 Node.js),这些 API 就不可用。

DOM 操作离不开 documentElement 接口

几乎所有前端交互都从这里开始。注意:获取不到元素时 querySelector 返回 null,直接调用 .addEventListener 会报 TypeError: Cannot read property 'addEventListener' of null

  • document.querySelector('.btn')getElementById 更灵活,但只返回第一个匹配项
  • 批量操作要用 document.querySelectorAll('.item'),它返回 NodeList,不是数组,不能直接用 map,得先转:Array.from(nodeList).map(...) 或用 forEach
  • 修改样式优先用 element.classList.add('active'),而不是直接拼 element.style.cssText,避免覆盖其他内联样式

发 HTTP 请求首选 fetch(),但别忘了它不拒绝 HTTP 错误状态码

fetch() 只在网络失败(如断网、DNS 错误)时 reject,而 404500 这类响应仍算“成功”,需手动检查 response.okresponse.status

fetch('/api/user')
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP error: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log(data))
  .catch(err => console.error('Fetch failed:', err));
  • 发送 JSON 数据记得加 headers: { 'Content-Type': 'application/json' }
  • 需要 cookie 时必须显式传 credentials: 'include',否则默认不带
  • 超时需自行封装,fetch() 原生不支持 timeout 选项

localStoragesessionStorage 只能存字符串

试图存对象会自动调用 toString(),结果变成 [object Object]。必须用 JSON.stringify()JSON.parse() 手动编解码。

const user = { id: 123, name: 'Alice' };
localStorage.setItem('user', JSON.stringify(user));

const saved = localStorage.getItem('user');
const parsed = saved ? JSON.parse(saved) : null;
  • 超出容量(通常 5–10MB)会抛 QuotaExceededError,需 try/catch
  • sessionStorage 关闭标签页即清空,localStorage 持久保存,但不同协议/端口/子域间完全隔离
  • 敏感信息(如 token)别存这里,容易被 XSS 盗取

Web API 的边界常被忽略:比如 setTimeoutPromise 是 JS 引擎能力,而 navigator.geolocationAudioContextIntersectionObserver 才是真正的 Web API——它们依赖浏览器实现,行为和兼容性差异大,查 MDN 时务必看 “Browser compatibility” 表格里的具体版本支持情况。

标签:# css  # javascript  # java  # js  # 前端  # node.js  # json  # node  # cookie  # 浏览器  # app  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!