JavaScript是浏览器中唯一能直接操作页面、响应用户、发起请求的编程语言;其核心难点在于状态管理、异步时序、错误恢复和跨浏览器兼容性。
JavaScript 不是“让网页动起来”的装饰性工具,它是浏览器里唯一能直接操作页面、响应用户、发起请求的编程语言。
为什么 document.getElementById 找不到元素?
常见错误是脚本在 HTML 元素加载前就执行了。比如把 因为 真正难的不是让元素动一下,而是状态管理、异步时序、错误恢复和跨浏览器行为差异。比如 iOS Safari 对 放在 里,而目标 还没解析到。
放在 前;DOMContentLoaded 事件包裹操作逻辑;window.onload——它等图片、样式表全加载完,太晚;defer 属性:。
addEventListener 和 onclick 有什么实际区别?onclick 是 HTML 属性或 DOM 属性,只能绑定一个处理函数;addEventListener 支持多次调用、不同事件类型、更细粒度的控制(比如 { once: true })。
onclick:适合极简原型,但改起来容易覆盖旧逻辑;addEventListener:生产环境必须用,尤其要监听多个按钮、支持取消时;event.target);为什么
fetch 请求后页面没更新?fetch 默认返回 Promise,不自动更新 DOM;而且它只在网络失败时 reject,HTTP 错误码(如 404、500)照样 resolve。
.then() 或 async/await 处理响应体;response.json()(或 text()),否则拿到的是 Response 对象,不是数据;response.ok 判断 HTTP 状态是否成功;document.querySelector('#result').textContent = data.message;catch 里只打印错误——用户看不到,得同步更新 UI 提示。input 的 focus 行为、Chrome 对 IntersectionObserver 的触发时机,都可能让“动起来”的逻辑在某个设备上静止不动。








