-
本文介绍在不创建中间副本的前提下,以单次遍历完成数组逆序.map()操作的高性能写法,并对比常规方法的性能瓶颈与替代策略。
-
BEM能防CSS类名冲突,因其通过块-元素-修饰符三段式命名(如.header__title--large)实现天然隔离;需配合ESLint、Stylelint等工具强制约束,禁用后代选择器与ID/标签选择器,并匹配严格正则;与CSS-in-JS、ShadowDOM不冲突,可共存互补;超小项目或动态样式场景则不宜硬套。
-
浅拷贝复制对象第一层属性,引用类型共享内存地址,修改嵌套对象会影响原对象,常用方法有Object.assign、扩展运算符等;深拷贝递归复制所有层级,生成完全独立的新对象,修改副本不影响原对象,但性能开销大,可用JSON.parse(JSON.stringify())或_.cloneDeep()实现,后者更灵活且支持复杂类型。
-
HTML5实现元素转动动画有五种方法:一、CSS3transform配合@keyframes;二、JavaScript动态修改style.transform;三、CanvasAPI的save/rotate/restore;四、SVGtransform属性或SMIL动画;五、WebAnimationsAPI精确控制。
-
box-shadow支持逗号分隔多层阴影,从前到后叠加,无需嵌套元素;外阴影默认、内阴影需inset;典型卡片用04px12px-2pxrgba(0,0,0,0.1)和inset01px2pxrgba(0,0,0,0.05)组合。
-
HTML<select>元素无法通过CSS的overflow属性控制下拉列表滚动,因其弹出菜单由系统/浏览器UI层独立绘制、脱离DOM;可靠方案仅有两个:一是用size属性转为多行常驻列表并配合height和overflow-y:auto,二是用JavaScript构建完全自定义下拉组件以实现滚动、搜索及可访问性支持。
-
使用支持多行选择的HTML编辑器可提升效率,通过Option+拖动实现列选择,Command+点击添加多光标,Command+Shift+L批量修改相同词,或在VSCode等编辑器中结合正则查找替换实现高效多行编辑。
-
JavaScript需通过Node.js等服务端环境连接数据库,浏览器端因安全限制无法直连;MongoDB用BSON文档模型、JS风格查询,适合灵活迭代场景;MySQL用关系模型、SQL语言,适合强一致性事务场景。
-
最快见效的是display:inline-block,但需处理空白符缝隙;float兼容旧版但需清除浮动;flex是当前首选,注意IE10–11兼容性;grid适合固定列布局,IE不支持。
-
button:hover伪类需配合background-color等具体样式才生效,空规则无效;应设置合法颜色值、添加transition过渡、注意优先级和移动端兼容性。
-
VNode的父子引用由渲染函数显式构造而非自动绑定,h()调用时通过当前实例上下文设置parent字段,children数组不反向维护parent,patch阶段parent通常稳定但移动节点时不更新,故不应依赖VNode.parent做运行时逻辑。
-
答案:通过拖拽、打开文件、修改默认方式及关闭兼容性视图,可使360浏览器正常预览HTML。具体为:1.拖拽HTML至浏览器;2.菜单中选择“打开文件”加载;3.右键HTML设默认用360浏览器打开;4.关闭兼容性视图切至极速模式。
-
border是控制元素边框的核心属性,可设置宽度、样式和颜色;支持简写如border:1pxsolid#000,并能单独设置某一边,如border-top;常用样式有solid、dashed、dotted等,配合border-radius可实现圆角效果,提升视觉体验。
-
推荐使用box-sizing:border-box,因其使宽高定义符合视觉直觉,实现“所设即所得”;避免content-box下padding/border导致宽度溢出、布局错位;简化响应式与Flex/Grid计算;统一全局盒模型行为,提升协作效率与组件可靠性。
-
float后文本绕图是因浮动脱离文档流但行框仍留空间,属设计行为;解决需触发BFC(如overflow:hidden或display:flow-root)或clear:both清浮动。