-
navigator.storage.estimate()是现代浏览器提供的异步API,用于估算当前源的存储已用空间(usage)和配额上限(quota),返回Promise,结果为{usage,quota}对象,二者均为动态估算值,不可精确计算剩余空间。
-
尾调用优化(TCO)是复用栈帧避免栈溢出的机制,但主流浏览器默认未启用;尾调用指函数末尾直接返回另一函数调用结果,无后续操作。
-
CanvasRenderingContext2D实现像素级绘制需四步:适配设备像素比、全量或脏矩形清除、确保资源加载完成、用requestAnimationFrame驱动动画,缺一不可。
-
WebPushpayload必须使用AES-128-GCM加密,由客户端提供的auth和p256dh派生密钥,浏览器强制要求content-encoding、encryption、crypto-key三头部齐全且格式正确,否则推送失败。
-
JavaScript语音识别主要依靠WebSpeechAPI的SpeechRecognition接口,需检测兼容性、处理权限与事件,适合网页实时转文字;不支持Safari,复杂需求需接入云服务或WebAssembly模型。
-
clamp()三个参数需验证生效区间:最小值16px在375px屏下对应2.5vw=9.375px<16px,故取16px;最大值24px在960px屏下2.5vw=24px,超此宽度即锁死24px;真正线性缩放仅发生在约640px–960px之间。
-
grid-auto-flow:column实现的是列优先填充而非单行横排,需配合grid-auto-columns、overflow-x和尺寸约束才能实现可滚动水平列表。
-
<p>JavaScript本身不支持注解语法,但可通过JSDoc注释为变量添加类型和说明,如/*@type{string}/constuserName="Alice";,配合工具实现类似功能。</p>
-
Symbol属性不可枚举,需Object.getOwnPropertySymbols()获取;作为原型属性时既隐式又可被继承访问,适合定义唯一协议方法(如serializable),避免命名冲突,支持跨模块共享、自动委托、运行时检测及多协议组合。
-
结论:别用calc()+float封装三栏布局Mixin——兼容性假象大,维护成本真高,现代项目里纯属倒退。因calc()在旧版Safari等浏览器中存在解析异常,float布局本身已过时,且现代项目应优先采用Flexbox或Grid。
-
background-color默认填充内容区和内边距区,受background-clip控制;默认情况下,背景色覆盖content和padding区域,如设置background-clip:content-box,则padding透明。
-
currentColor仅取元素自身计算后的color值,非父级穿透继承;伪元素需显式设color才生效,且不支持IE11/旧Safari的background-color;内联SVG才认fill="currentColor",外链SVG无效;它不能赋值给CSS变量,也不参与过渡动画。
-
navigator.locks不能同步权限,仅保证同源下至多一个标签页执行某段代码;锁名须含业务唯一标识且URL-safe,mode必须显式设为'exclusive',ifAvailable应启用以防阻塞,Safari不支持需服务端幂等兜底。
-
ViewTransitionsAPI仅对已挂载且可匹配的DOM元素生效,依赖成对、稳定、唯一的view-transition-name属性触发快照过渡,不支持跨页面导航或异步DOM更新。
-
contextmenu事件需在捕获或目标阶段显式调用event.preventDefault()和stopImmediatePropagation()阻止原生菜单,监听须绑定到具体元素(含shadowRoot),坐标计算要修正滚动偏移与窗口边界,菜单需手动管理焦点、ESC关闭、点击外部隐藏及无障碍支持。