-
不能,less.js从v4起废弃浏览器端运行时编译,v5彻底移除script[type="text/less"]和link[rel="stylesheet/less"]支持,因安全、性能问题及现代构建工具已提供更优替代方案。
-
replace方法默认只替换第一个匹配项;不使用正则时仅替换首处子串,全局替换需正则加g标志,特殊字符须转义,捕获组用$1引用,函数替换时参数顺序固定。
-
Object.defineProperty通过get/set拦截属性读写,实现数据响应式,Vue2据此追踪依赖并更新视图,但无法监听数组索引及属性增删,需递归遍历对象实现深度监听。
-
使用CSS的position和:hover实现下拉菜单:通过父级li设置relative定位,子菜单absolute定位并默认隐藏,hover时显示,结合box-shadow、z-index等优化体验,无需JavaScript即可完成交互。
-
data属性是HTML5中用于存储自定义数据的特性,通过data-前缀定义,如data-id="123",可用JavaScript的dataset访问,命名转为驼峰格式,如inStock对应data-in-stock,常用于传递配置、绑定ID、标记状态和动态渲染,支持读取与修改,提升HTML与JS协作效率。
-
gutter是CSS框架中用于管理列间距的封装属性,gap是原生CSS属性;Bootstrap用负margin实现gutter,Tailwind直接使用gap,两者均确保布局对齐与响应式精度。
-
Canvas文字不显示需检查fillStyle和font是否已设置,二者缺一不可;y坐标对应基线而非顶边;中文需显式声明字体并等待WebFont加载完成;慎用strokeText和大阴影以防性能下降。
-
盒模型决定Grid子元素的实际尺寸,Grid布局提供空间框架。每个Grid项遵循内容、内边距、边框和外边距的计算规则,其总大小受box-sizing影响;若未设为border-box,padding和border会额外增加尺寸,可能导致溢出。Grid通过grid-template-columns/rows定义轨道大小,结合gap设置间距,子元素在分配的空间内按盒模型渲染。推荐全局设置box-sizing:border-box,使宽度包含内边距和边框,确保布局精准可控。二者协同实现可预测的响应式设计。
-
WebRTC是浏览器原生支持的点对点音视频通信技术,核心由MediaStream、RTCPeerConnection和RTCDataChannel三部分组成,需信令服务与STUN/TURN服务器协同实现连接。
-
数组扁平化方法包括:1.flat()语法简洁但兼容性差;2.reduce+concat逻辑直观但内存开销大;3.扩展运算符+循环适合中等深度但性能随层数下降;4.栈模拟法避免递归,适合深层结构;5.toString+split仅限数字且最快。性能上,小数组用flat(),大数组用栈模拟,纯数字优选toString+split,深层嵌套避免递归。
-
grid-item动画只能用transform、opacity、filter等合成层属性;改grid-column/row无效;hover缩放需单元素加transition和transform;JSstagger动画用CSS变量控制延迟;Firefox卡顿需加translateZ(0)或will-change。
-
Promise用于组织异步依赖而非简化流程;then链明确执行顺序而非仅减少嵌套;滥用致错误静默、调试困难;async/await是语法糖,底层仍依赖Promise;需依数据依赖关系选择await、Promise.all或allSettled。
-
骨架屏应使用linear-gradient配合background-position动画实现光扫效果,而非静态灰色块;需设background-size大于容器、animation-delay错开节奏、IE11降级为opacity脉冲,并确保容器有明确宽高。
-
Promise实现的delay函数通过封装setTimeout返回自动resolve的Promise;基础版仅延时,增强版支持传值、取消和reject;常用于模拟请求、节流防抖、UI过渡及重试逻辑。
-
:invalid未生效是因为它仅在字段已验证且失败时触发,初始加载时字段处于“未触碰”状态,即使值非法也不会匹配;需用户交互或手动校验才激活。