-
半星评分无法纯CSS可靠实现,因浏览器不支持小数级视觉渲染、伪元素和背景图无法像素级裁剪、Unicode无半星语义、mask兼容性差且touch失效;当前最可控方案是JS结合getBoundingClientRect()与clientX计算位置,并在桌面端启用、移动端降级为整星选择。
-
JavaScript读写分离是避免LayoutThrashing最有效手段,即先集中读取offsetHeight等触发强制同步布局的属性,再集中执行style修改,确保重排最多1次。
-
不能直接用CSS选择器定位带阴影的元素,因为CSS选择器无法基于已应用的样式(如box-shadow)进行匹配,只能依据DOM结构、属性或状态。正确做法是通过类名(如.has-shadow)、数据属性(如data-shadow)或语义化标签等结构性标识,在添加box-shadow时同步赋予元素可被选择的特征,从而实现精准定位与管理。
-
Symbol.toPrimitive不能使组件实例真正参与数学运算,仅控制类型转换;需配合显式转换逻辑(如.valuegetter或.add()方法)才能实现+、*等运算。
-
MobX通过observable、action、computed和reaction实现自动依赖跟踪,利用Proxy或defineProperty拦截数据读写,构建响应式依赖图,状态变化时精准更新依赖项。
-
viewport单位在Safari失效主因是缺失或重复metaviewport标签;iOS15+“请求桌面网站”影响vh;max-device-width已弃用,应改用max-width;Safari15.4前不支持clamp()中使用vh;逻辑属性在旧Edge中与prefers-reduced-motion配合失效。
-
动态导入import()返回Promise,实现模块加载的可编程异步控制;支持按需加载、条件路径、错误隔离与优雅降级,但需await/then处理且路径须可被构建工具静态分析。
-
常见错误是直接传对象属性作param,因上下文不同导致取值时机、响应式、序列化行为差异;HTTP中需防undefined、时间格式、类型转换问题;组件中易引发冗余rerender或更新丢失;后端须做显式类型转换和空值归一化。
-
canvas标签本身不绘图,必须通过JavaScript调用getContext("2d")获取2D渲染上下文才能绘图;需先用document.getElementById()获取canvas元素,且宽高须用HTML属性而非CSS设置,否则导致失真;绘图前须注意坐标系、fillStyle、beginPath()及手动清屏等默认状态问题。
-
<nav>标签仅用于页面主要导航区块,必须包裹全局跳转链接,需配aria-label或aria-labelledby,内部宜用<ul><li><a>结构,禁用非导航内容、伪链接及冗余role属性。
-
数组移位与旋转本质是索引的循环映射:右移k位对应(i+k)%n,左移为(i−k+n)%n;常用三步翻转法原地实现,环状替换则依赖gcd(n,k)个环达到O(1)空间。
-
BEM通过扁平单类名选择器减少CSS匹配开销,避免后代选择器回溯,提升渲染性能;需严格遵循命名规范、合理使用Sass模块化和PostCSS配置,并以拆分CSSchunk优化体积。
-
核心是用max-height过渡(最稳妥)、transform:scaleY()缩放(无重排)或类名切换+getBoundingClientRect()动态计算高度(最灵活),三者均规避height:auto不可过渡、display:none中断动画等问题。
-
HTML中直接敲空格失效是因浏览器执行空白折叠;应优先用CSS(如margin、gap)控制间距,仅在无CSS环境才选用语义匹配的空格实体(如 、 )。
-
HTML注释唯一标准语法是<!--注释内容-->,支持单行或多行,不可嵌套,需避免特殊字符干扰,应贴近所注释代码并保持可读性。