-
JSON本身不拖慢HTML美化工具,真正影响性能的是嵌入方式:type="text/javascript"导致JS解析错误、data-*属性含多行JSON引发解析卡顿、全局配置误对JSON块启用JS解析器。
-
展开运算符(...)是JavaScript中将可迭代对象解包为独立值的底层能力,用于数组合并、函数传参、浅拷贝、类数组转换等,但不支持深拷贝、null/undefined展开及原型属性继承。
-
直接拆分CSS文件不一定减少首屏加载时间,因浏览器会并行下载所有head内link的样式表并阻塞渲染;真正有效的是按需加载——依据是否被当前页使用、是否参与首屏渲染,结合media属性条件加载、preload动态注入或构建时按路由/组件提取最小CSS包。
-
下拉菜单在网页中通过select和option标签实现,基本结构是用select包裹多个option,每个option代表一个可选项。1.默认选中第一个选项,若需指定默认值,可在对应option添加selected属性;2.获取选中值可通过为select设置name或id,配合表单提交或JavaScript操作获取;3.可使用disabled属性禁用某些选项,提升用户体验;4.若选项较多,可用optgroup对选项进行分组展示,使界面更清晰易读。这些细节处理得当,有助于提升用户交互体验。
-
浮动元素导致父容器塌陷时,应触发BFC:用overflow:hidden/auto或display:flow-root;避免空div清浮动、固定高或混用flex。需注意box-sizing、IE兼容及适用边界。
-
IE8支持!important,但仅限CSS文件中;内联样式(style属性)中的!important会被完全忽略。这是因W3C规范禁止在内联样式中使用!important,IE8严格遵循该规范,而现代浏览器的兼容性处理属非标准行为。
-
flex-grow按权重分配剩余空间而非均分父容器宽度,仅在有剩余空间时生效;flex-shrink控制溢出时的收缩比例,以flex-basis为基准;flex-basis优先级高于width,min-width为收缩下限。
-
原生details元素可直接实现语义化、无障碍折叠功能,无需手写JS:用<details><summary>标题</summary>内容</details>即可,支持键盘操作、自动aria状态,兼容主流浏览器(Chrome12+等),IE除外。
-
使用gap属性可设置CSSGrid布局的行列间距,gap能统一设置行列间距,row-gap和column-gap可分别设置行距与列距,如gap:20px或row-gap:15px、column-gap:30px,现代浏览器推荐直接使用无前缀属性,gap支持双值写法gap:10px20px等价于分别设置行列间距,相比margin更简洁高效。
-
正则表达式是JavaScript字符串处理的基础设施,必须掌握RegExp对象及match()、test()、replace()等方法;字面量简洁但不可拼接变量,构造函数支持变量但需双写反斜杠;不同场景应选用match、test、exec或replace。
-
答案:构建插件架构需定义统一接口、实现注册加载机制、提供扩展点并管理生命周期。插件应导出含name、init的标准对象,主程序通过registerPlugin注册,支持动态加载;利用事件或中间件暴露钩子,允许插件响应关键流程;通过enable/disable控制状态,调用destroy清理资源,并限制context权限以增强安全隔离。
-
Vue.js的watch默认浅监听且不处理异步副作用;需设deep:true实现深度监听,结合防抖、AbortController和清理函数避免竞态与内存泄漏,并用flush控制触发时机。
-
clip-path:inset(100%)是最可靠的视觉隐藏方式,它裁剪为空区域、不占空间、不响应事件、兼容现代浏览器;若需兼容IE11,应使用absolute+1px尺寸+margin-1px+overflowhidden+clip组合。
-
用border设置实线边框最直接,需显式声明solid(如border:1pxsolid#000),否则默认为none;其伸缩性由display类型、box-sizing和内容存在与否共同决定,空元素塌陷是主因。
-
iOSSafari中transition卡顿主因是非合成属性触发CPU重排重绘;仅transform和opacity可GPU加速;需谨慎用will-change、translateZ(0)/translate3d(0,0,0),并避免布局抖动与不良timingfunction。