-
必须用if/else而非switch的情况包括:数值范围判断(如score>=90)、关系运算(>、<、!=等)、布尔表达式、不同类型操作数比较、运行时计算值匹配——switch仅支持同一变量的离散等值匹配。
-
应优先使用<buttontype="reset">,它更现代、可嵌套内容且样式可控;<inputtype="reset">仅适用于极简场景;手动调用form.reset()易遗漏初始值逻辑和控件状态。
-
移动端:active伪类在真机不触发是因浏览器未激活,需加cursor:pointer、touchstart事件或role="button"+tabindex="0";必设touch-action:manipulation消除延迟,并配合transition与-webkit-tap-highlight-color:transparent。
-
JavaScript调用RESTAPI应使用fetch+async/await,手动检查response.ok或status,try/catch捕获异常;封装apiClient统一处理token、序列化、超时及错误;UI需响应加载、错误、空状态;URL应常量化管理。
-
writing-mode是切换文本流方向的布局机制而非视觉技巧;vertical-rl与vertical-lr区别在于竖排列序,需配合text-orientation、line-height、height等显式设置以避免错乱。
-
justify-content:space-evenly不生效的首要原因是父容器未设置display:flex;它将总空白均分给n+1个间隙,实现首尾与中间间隙完全等宽。
-
HTML5无需安装,其开发关键在于正确配置VSCode环境与浏览器调试选项。需用LiveServer解决跨域,禁用实验性设置,通过DevTools确认协议及存储行为,并在必要时安装Node.js支持构建与本地服务。
-
HTML5中边框实线必须用CSS的border-style:solid声明,不能依赖HTML旧属性;Chrome与Edge(Chromium内核)对此渲染一致,但需注意漏写solid、压缩丢失、父容器变换、覆盖样式及移动端兼容等实际影响因素。
-
纯CSS无法实现真正虚拟滚动,因其不能感知滚动位置、计算可视索引或动态更新渲染;核心逻辑必须由JS完成,CSS仅负责高效位移(如transform)与视觉优化。
-
:focus-visible更适合表单可访问性,因为它仅在键盘导航(如Tab)时显示焦点样式,避免鼠标点击时突兀的轮廓线;需用层叠规则安全降级,并注意浏览器支持与元素默认行为差异。
-
Number.EPSILON是JavaScript中1与大于1的最小可表示数之差,约2.220446049250313e-16,用于浮点数安全比较;它不是通用误差容限,需配合Math.abs(a-b)和量级基准(如Math.max(Math.abs(a),Math.abs(b)))使用。
-
本地运行HTML文件只需双击打开,或用浏览器手动加载;若需完整功能,可用Python启动本地服务器,通过http://localhost:8000访问,适合开发调试。
-
HTML多选框用<inputtype="checkbox">实现,需统一name值分组、设value区分选项、禁用ID重复;JS通过querySelectorAll获取全部并手动同步checked/indeterminate状态。
-
不用写type="text/javascript",现代浏览器默认按JavaScript解析script标签;language属性已废弃,完全不可用;仅type="module"、type="importmap"、type="application/json"需显式声明。
-
事件冒泡是DOM事件从目标元素逐级向上传播至document的默认行为;可用event.stopPropagation()阻止,它仅停止冒泡而不影响同一元素其他监听器或默认行为。