-
最常见的现象是SVG<symbol>定义了、<use>也写了但页面空白,根本原因是<use>的href必须指向同文档内已解析的<symbol>ID,且该<symbol>必须在DOM中提前存在(不能动态插入或藏于未加载的外部文件),ID需严格匹配、区分大小写,<symbol>还必须显式声明viewBox以确保正确缩放和渲染。
-
Vue3的reactive通过Proxy实现响应式,支持深层监听、动态增删属性、数组索引赋值及Map/Set等结构,采用懒代理、依赖收集与触发更新闭环机制。
-
createContextualFragment是Range对象的方法,用于安全高效解析HTML字符串为DocumentFragment,不执行脚本、不触发回流;须通过document.createRange()调用,返回未挂载的轻量片段,支持多节点插入。
-
SVG路径无法用CSS定位是因为其坐标系与CSS盒模型分离,需对<svg>外层容器定位而非<path>;装饰器贴合需同步坐标系与宿主边界;absolute定位后点击失效需设pointer-events和z-index;CSS仅安全动画stroke属性,d属性不支持过渡。
-
SSR的核心是在Node.js中执行组件并生成带数据的HTML字符串,而非直接返回静态index.html;必须包含组件执行、数据注入、HTML合成三环节,且需规避浏览器API、保证同构、严格对齐客户端水合。
-
正则表达式可通过捕获组与反向引用(如(.))\1{3,})识别连续重复字符以拦截垃圾输入,但不支持全局频率统计;需限定字符类型、前后处理空格,并在服务端复核。
-
JavaScript支持函数式编程但需主动约束:不可变性(const≠不可变,需Object.freeze或immer)、纯函数(无副作用、输入输出确定)、柯里化(提升复用而非性能),核心是习惯而非语法。
-
BEM通过将作用域编码进类名(如search-form__submit)实现样式隔离,避免全局冲突;禁止无上下文规则、!important和嵌套后代选择器,强调Block功能闭环与命名一致性。
-
keygen标签已被彻底移除,所有主流浏览器均不解析;其替代方案是WebCryptoAPI手动生成密钥对或优先采用WebAuthn进行身份认证。
-
flex容器上设break-inside:avoid无效,因分页控制需作用于块级子项;必须为每个卡片等子项单独添加该属性,并确保无overflow:hidden、transform、绝对定位等干扰,推荐@mediaprint中降级为block布局。
-
CSS工具和框架本质不同:工具提升编写效率,如Sass、CSS-in-JS、PostCSS;框架提供现成样式,如Tailwind(原子类)、Bootstrap(组件化)、Materialize(设计系统)。选择取决于需求:统一管理用工具,快速搭建用框架。
-
HTML5中script标签的type属性可省略,默认为text/javascript;仅type="module"有实质性行为差异,启用ES模块系统;type="application/json"等用于存储非执行数据。
-
优先选择语义最匹配的API:查找用find/findIndex,判存在用some;性能瓶颈时再用for+break优化。for循环最可控高效,find语义最强,for...of可读性好但有轻微开销。
-
可通过CSS.registerProperty()或@property注册带类型(如<color>、<length>)的自定义属性,提升样式计算与动画性能;仅类型可插值时才支持transition和@keyframes动画,需确保赋值合法且initial-value合理。
-
能不改业务代码就切Mock,前提是依赖创建逻辑外移且注入点可控;必须用构造函数注入、接口/纯虚类声明依赖,Mock需严格遵循接口契约并覆盖边界场景,切换入口须统一前置至组装阶段。