-
Symbol.hasInstance是用于自定义instanceof行为的内置symbol,需在构造函数上定义返回布尔值的函数,优先于原型链检查,仅影响instanceof。
-
text-shadow多层叠加才是立体感的关键:单层仅能实现浮雕或发光,真3D需3层以上模拟光源与景深,按“高光→主影→深影”顺序书写,推荐rgba控制自然衰减,避免超4层以防移动端性能抖动。
-
HTML和CSS无round函数,必须用JavaScript实现;Math.round()仅支持整数四舍五入且负数按向正无穷取整,保留小数需手动缩放,严格四舍五入应避免toFixed()的银行家舍入。
-
drop事件未触发是因为dragover阶段未调用e.preventDefault(),浏览器默认拦截拖放;必须在dragover中阻止默认行为才能使drop执行,且drop中也要preventDefault防止文件被打开或下载。
-
推荐使用sepia(0.6)contrast(1.1)brightness(0.95)组合实现自然老照片效果,避免sepia(1)过重发黑;透明PNG需配合泛黄背景(如#f8f2e9)防止层次丢失;高保真褪色需Canvas或SVG方案,但性能开销大。
-
PageLifecycleAPI无法捕捉用户关闭标签的异步前兆,唯一可靠时机是pagehide(persisted===false),须同步执行,推荐navigator.sendBeacon()或img打点;beforeunload、visibilitychange、freeze均不适合作为关闭信号,应采用关键动作即时上报+pagehide守底策略。
-
MarginCollapse是CSS规范规定的相邻块级元素垂直外边距取较大值而非相加的行为,导致父容器塌陷、间距异常等“突然变矮”现象;可通过加border、padding、overflow或display:flow-root阻止,Flex/Grid容器子元素间不发生该合并。
-
加了backface-visibility:hidden反而让元素消失,是因为该属性在安卓旧版浏览器中强制创建独立合成层,切断其与定位上下文的关联,导致absolute找不到包含块、fixed无法锚定视口而被跳过渲染。
-
Map在大规模数据查找中比Array.find()快,因其通过哈希定位实现O(1)查找,而Array.find()是O(n)线性遍历;数据量增大时耗时近似线性上涨,Map则稳定在0.003–0.005ms,且支持多样key类型、增删后性能稳定。
-
scroll-snap-stop:always仅Safari≥15.4在触控板/触摸屏滑动时真正生效;Chrome/Edge≤120、Firefox全系静默忽略;旧版浏览器直接丢弃该属性,需结合@supports和JS校准实现兼容。
-
Intl.Segmenter不能直接当分词器用,因其仅探测语言规则定义的边界位置,不判断语义合理性,如日语「東京スカイツリー」被切为单字而非专有名词整体,中文亦只按字切分,无法识别“编程”等语义词。
-
pointer-events:none在IE10及更早版本完全未实现,需用透明遮罩替代;遮罩须设position:absolute/fixed、z-index高于目标、background:transparent,并确保关闭按钮为其真实子元素且无障碍属性完备。
-
HTML列表嵌套必须将子列表(ul/ol)完整置于li标签内,否则浏览器会自动拆分为并列列表而非嵌套结构;错误写法如<ul><li>项</li><ol><li>子项</li></ol></ul>会被解析为两个独立列表。
-
background-blend-mode不生效需确认三件事:必须有至少两层背景(如图片+颜色或两张图片);所有图层须写在同一background或background-image+background-color声明中;不支持伪元素单独设混合。
-
box-shadow多层叠加“糊成一团”是因渲染顺序错误:大模糊阴影应置于后层,锐利阴影放前层;spread负值可收紧边缘,blur与spread配比决定立体感;inset阴影需写在最后才能浮于表面;响应式需用CSS变量或clamp()动态调整。