-
分代回收是V8引擎基于98%对象存活时间<10ms的实测统计事实落地的工程策略,将堆划分为新生代(Scavenge复制算法,快进快出)和老生代(Mark-Sweep/Compact,MajorGC耗时高),核心是顺应引用链生命周期实现短周期对象速死、长周期对象稳住。
-
Less中需直接在CSS声明中使用env(safe-area-inset-top,0px),不可赋值给变量或参与运算;兼容旧设备应按padding-top:20px;→constant();→env()顺序书写,fallback值0px必不可少。
-
<var>是纯语义HTML标签,仅用于解释性文本中标识变量名,不参与JavaScript运行、CSS变量解析或代码高亮逻辑,不可嵌入<code>内,也不具备数据绑定能力。
-
使用百分比宽度和max-width可防止元素溢出屏幕,结合box-sizing:border-box和overflow-x:auto处理特殊内容,确保响应式布局适配各类设备。
-
HTML兼容性问题靠标准声明+特性检测+降级兜底三层解决:DOCTYPE必须首行无空格,html5shiv需配display:block规则,用Normalize.css统一默认样式,JS用存在性检测而非UA判断,构建配置须精准覆盖目标浏览器。
-
overflow:hidden并非专为清除浮动设计,而是因触发BFC使父容器包含浮动子元素;但会裁剪溢出内容,导致弹层、fixed元素被截断或移动端滚动异常,现代推荐display:flow-root或Flex/Grid布局。
-
::first-letter伪类可实现首字下沉,需作用于块级元素且首字符为可见符号;常用float、font-size、line-height等属性控制效果,兼容现代浏览器,中文同样适用。
-
Webpack是一个静态模块打包器,从入口文件递归解析import/require等模块依赖,输出浏览器可运行的bundle;需通过loader(如css-loader、style-loader)和plugin扩展能力,不直接编译或压缩资源。
-
JavaScript需要Proxy,是因为它提供了唯一原生、细粒度、可编程的方式拦截和自定义对象基本操作;而Object.defineProperty仅能静态劫持已存在属性,无法捕获新增/删除属性、in操作、数组索引访问等。
-
HTML跨浏览器适配靠三件确定性动作:DOCTYPE顶格声明、normalize.css统一默认样式、用特性检测而非UA判断JS能力;漏掉任何一件,IE或旧Safari中CSS和JS均可能失效。
-
纯CSS可实现3D文字效果:用text-shadow多层偏移模拟纵深(兼容性好、轻量),或用transform-style:preserve-3d+transform实现真3D分层(需字符包裹span、父容器设perspective和preserve-3d);字体选择、抗锯齿设置及设备适配至关重要。
-
Object.isFrozen不能判定“全局单例是否处于只读安全期”,它仅检测对象是否浅层冻结(不可扩展、属性不可配置且不可写),不感知初始化完成、运行时锁、并发安全或深嵌套可变性。
-
直接运行vite即可启动HTML开发服务器,无需配置、框架或JS模块,只要根目录有index.html;常见错误包括未安装vite依赖、index.html位置或命名错误、误用vitepreview替代开发服务器,路径引用须以index.html所在目录为基准。
-
装饰器套在类方法上直接报错self丢失,是因为普通装饰器未显式接收并透传self(或cls),导致其被误作第一个位置参数吃掉;正确写法必须是defwrapper(self,args,kwargs)或defwrapper(cls,args,kwargs),否则引发TypeError或属性访问失败。
-
Object.seal是实现前端本地数据快照“结构稳定性”的轻量级手段,它锁定字段结构但允许修改属性值,兼顾服务端契约一致性与运行时内容更新需求。