-
sessionStorage和localStorage生命周期与共享范围不同:前者仅限当前标签页会话,关闭即清空;后者持久存储,除非手动清除。适用场景上,前者适合临时数据如表单草稿,后者适合长期偏好如主题设置。
-
使用CSSGrid的auto-fill与minmax可实现自适应卡片布局:通过grid-template-columns:repeat(auto-fill,minmax(250px,1fr))定义最小列宽并自动换行,容器宽度变化时列数平滑调整;auto-fill保留空轨道,auto-fit则拉伸填满空间,推荐结合min-width:0与相对单位提升布局稳定性。
-
content-visibility:auto可显著优化超长文档初次渲染与滚动性能,通过跳过离屏内容的布局绘制但保留占位空间,并需配合contain-intrinsic-size防止滚动抽搐。
-
V8的TickProcessor无法直接分析优化/去优化轨迹,因其采样快照仅记录栈顶函数,不含编译状态;必须结合--trace-opt/--trace-deopt输出的时间戳事件日志才能准确还原。
-
JavaScript表单验证以正则表达式为核心,涵盖邮箱、手机号、密码、身份证等高频场景;需在submit事件中集中校验并阻止默认提交,结合前端提示与后端二次校验。
-
能,但需拆分为多个独立动画并行触发而非叠加;若同时修改transform等属性,后声明的会覆盖前一个;推荐在单个@keyframes中用复合transform实现同步效果。
-
HTML5允许省略引号的属性值需满足:无空格、无特殊字符、不以数字开头、不含=<>'"`等;否则必须加引号;布尔属性如disabled可写为disabled、disabled=""或disabled="disabled",但disabled=false仍为禁用。
-
快速排序的工作原理是基于“分而治之”策略,通过选择基准、分区和递归排序三个步骤实现高效排序:首先从数组中选择一个基准元素,然后将数组划分为两部分,左边为小于基准的元素,右边为大于或等于基准的元素,此时基准位于最终有序位置;接着对左右两个子数组递归执行相同操作,直到子数组长度小于等于1,整个数组即有序。该算法平均时间复杂度为O(nlogn),最坏情况下为O(n²),空间复杂度平均为O(logn);常见优化包括随机或三数取中法选择基准、小规模数据切换插入排序、三路分区处理重复元素以及尾递归或迭代实现以降低栈深
-
使用横向滚动容器、媒体查询调整布局、转换为卡片式布局及CSS显示属性控制是实现响应式表格的关键方法,确保小屏下内容清晰可读。
-
通过grid-template-areas与mediaquery结合,可实现响应式布局:先定义header、sidebar、main、footer的网格区域结构,再在小屏下调整为单列堆叠顺序,提升移动端体验。
-
应使用matchMedia而非window.orientation:前者实时响应横竖屏变化且全平台兼容,后者已废弃;监听change事件而非resize;CSSorientation基于视口宽高比,非设备物理方向。
-
download属性仅对同源链接生效,跨域、BlobURL等场景会失效;真正可控的下载需用URL.createObjectURL配合a.download,或服务端设置Content-Disposition:attachment响应头。
-
HTML表格内容居中可通过五种方法实现:一、传统align/valign属性;二、CSStext-align/vertical-align;三、CSS类统一控制;四、Flexbox布局(display:flex;justify-content/align-items);五、Grid布局(display:grid;place-items:center)。
-
Object.freeze仅浅冻结,嵌套对象仍可修改;deepFreeze需递归实现并严格在模块加载最前端执行,否则引用已缓存导致失效;冻结前须切断原型链、禁用代理与访问器。
-
Array.prototype.findLast是ES2023新增方法,从数组末尾查找首个满足条件的元素;返回undefined需判空;Chrome108+等现代环境已支持,旧环境可用reverse().find()或倒序遍历替代。