-
JavaScript游戏开发分三类:轻量级Canvas适合入门和2D小游戏;Phaser是主流成熟2D引擎;Three.js适配高性能3D需求,需自建框架。选型应据项目目标而定。
-
闭包能构建真正的私有命名空间,通过将变量和函数限定在函数作用域内,使其不挂载于任何可遍历对象(如window、模块导出对象),从而杜绝三方脚本通过for...in、eval、Function构造器等方式读取或篡改;工厂函数为每次调用创建独立闭包环境,配合IIFE与接口精简导出,实现双重隔离防护。
-
jQuery已非新项目必需,因现代浏览器原生API成熟、主流框架减少DOM操作、体积负担与维护成本高;仅老系统、特定插件依赖或极简静态页等场景暂难替代。
-
rel属性是决定浏览器行为与安全的关键属性,必须配合target="_blank"才生效;单独使用rel="noopener"无效,需显式声明以防止reversetabnabbing攻击,且现代最佳实践为rel="noopenernoreferrer"。
-
Number.MAX_VALUE是IEEE754双精度浮点数能表示的最大有限正数,约1.7976931348623157×10³⁰⁸,非整数上限也非精度边界,超此值即溢出为Infinity。
-
按钮禁用样式失效需在Tailwind配置中启用disabled变体;加载中状态应结合disabled属性与条件渲染图标文案;务必设type="button"防重复提交,并在请求终了恢复按钮状态。
-
非贪婪量词+?无法解决嵌套括号提取,仅适用于单层或已知不嵌套场景;因其依赖线性匹配,不能识别括号层级或计数平衡;真正处理嵌套需用递归正则、栈解析或专用解析器。
-
ESM循环引用触发TDZ报错,本质是实例化阶段导出绑定未激活时提前读取let/const变量;解析→实例化→执行三步中,循环发生在实例化期,此时顶层代码未执行,导出值仍为“未初始化”状态。
-
WebLocksAPI通过资源维度唯一锁名协调多标签页对共享状态的原子访问,所有读-改-写操作须在锁回调内完成并返回Promise,不支持环境需服务端幂等或前端提示降级。
-
Normalize.css必须在所有自定义CSS之前加载,否则其统一样式会被覆盖而失效;它不是兜底方案而是样式基线,错误顺序会导致button边框残留、h1大小不一、input对齐错位等问题。
-
用语义化HTML(section/article/figure)+CSSGrid(auto-fill/minmax)实现响应式商品列表,配合viewport、alt、aria属性保障可访问性与移动端适配。
-
双击HTML文件无反应,首要检查浏览器是否设为默认打开程序;其次路径含中文或空格会导致Chrome/Edge加载失败,需改用纯英文路径;此外本地缓存易致预览旧内容,应强制刷新或使用LiveServer;移动端则因系统限制无法直接打开,须借助专用App或本地HTTP服务。
-
响应式状态深度监听的关键是避免无效监听、控制更新粒度、确保变化可追溯;Vue3默认深层响应,但需通过computed+toRaw、shallowRef+triggerRef、watch合理配置及结构化Store设计来实现精准响应。
-
闭包是函数与其词法作用域的组合,能访问并记住外部变量。例如inner函数引用outer的count,即使outer执行完,count仍被保留。关键特性:作用域链机制使内部函数可访问外层变量;变量不被垃圾回收;每个闭包独立持有外部变量副本。应用场景包括模拟私有变量、回调中保存状态、函数柯里化和模块模式。问题有内存泄漏风险及循环中共享变量陷阱,如用var循环创建闭包会输出相同值,改用let可解决。理解闭包需掌握作用域链与变量生命周期,通过实践加深认知。
-
<br>不该滥用但该用时必须用,仅用于地址、诗歌、歌词等自然语言需换行的语义场景;多数换行需求应由CSS(如display、margin、flex)解决,避免破坏无障碍与响应式。