-
CSS变量值不应加外层引号,否则引号会被当作字面量存储;正确写法是--my-str:helloworld;,需转义时用\"或\',URL和calc等原生语法可直接使用。
-
navigator.geolocation需HTTPS或localhost、检查支持性、必须传error回调;watchPosition需手动clearWatch防泄漏;enableHighAccuracy耗电且室内无效;拒绝权限后需降级方案。
-
poster属性不支持自动截取第一帧,必须用JavaScript主动截取并赋值;video.currentTime=0后截黑图需检查loadeddata事件、跨域设置、移动端延迟及编码特性。
-
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、保证同构、严格对齐客户端水合。
-
使用绝对定位结合transform居中模态框,通过top:50%、left:50%将元素起点移至视口中心,再用transform:translate(-50%,-50%)精准居中,兼容性好且无需知道具体尺寸,推荐配合fixed定位与遮罩层使用。
-
HTML浏览器兼容性问题靠标准声明+特性检测+降级兜底三层解决:DOCTYPE必须首行无空格,html5shiv需配display:block规则,用Normalize.css统一默认样式,JS用存在性检测而非UA判断,构建配置须精准覆盖目标浏览器。
-
变量提升是JavaScript中var声明被提升并初始化为undefined,而let/const声明虽被提升但不初始化,访问会触发ReferenceError,该区域称暂时性死区(TDZ)。
-
最安全优雅的方式是用工厂函数返回新对象,因对象字面量会导致多个组件实例共享同一引用,引发引用污染;Vue中default必须为无参函数,React中推荐组件内解构合并或useMemo。
-
正则表达式可通过捕获组与反向引用(如(.))\1{3,})识别连续重复字符以拦截垃圾输入,但不支持全局频率统计;需限定字符类型、前后处理空格,并在服务端复核。
-
flex-direction在媒体查询中失效的主因是父容器未声明display:flex,或@media未正确作用于目标元素;需基础样式设column,再用min-width断点切row,并同步处理order值。
-
答案是提升HTML代码质量需坚持语义化标签使用、遵循书写规范、关注可访问性,并借助工具优化。具体包括:用<header>、<nav>等语义标签构建清晰结构,保持标题层级逻辑;属性值用双引号、标签小写、合理缩进以提升可读性;为图片添加alt属性,表单使用label关联,提升无障碍体验;结合W3C验证器和Prettier等工具持续优化代码,确保结构正确、风格统一,最终实现易于维护且兼容性强的HTML代码。
-
JavaScript支持函数式编程但需主动约束:不可变性(const≠不可变,需Object.freeze或immer)、纯函数(无副作用、输入输出确定)、柯里化(提升复用而非性能),核心是习惯而非语法。
-
BEM通过将作用域编码进类名(如search-form__submit)实现样式隔离,避免全局冲突;禁止无上下文规则、!important和嵌套后代选择器,强调Block功能闭环与命名一致性。