-
VNode内存优化核心是减少冗余引用与闭包捕获:精简props/attrs、避免render闭包、合理使用patchFlag、清理钩子引用,使VNode尽可能无状态无残留。
-
WeakMap的键是弱引用,不参与可达性判断,对象无其他强引用时可被垃圾回收,从而避免内存泄漏;但值仍为强引用,且无法遍历或获取size。
-
富媒体摘要必须使用JSON-LD格式的<scripttype="application/ld+json">,且结构化数据需与页面可见内容严格一致;Article类型须含headline、datePublished、author等字段,image须为可访问的数组,datePublished等日期须为带时区的ISO格式。
-
最简纯前端文件选择控件为<inputtype="file"id="fileInput">,支持accept、multiple、required等属性,id必需以便JS获取;默认样式不可深度定制,::file-selector-button仅Chrome98+较好支持。
-
JavaScript函数默认参数在调用时按声明顺序求值,存在暂时性死区(TDZ),即参数在其默认值初始化完成前不可访问;左侧参数可用于右侧参数默认值计算,但不可引用自身或未初始化的右侧参数。
-
在JavaScript中设置元素的属性值可以使用setAttribute方法或直接操作元素的属性。1.使用setAttribute方法可以设置任何类型的属性,包括自定义属性,但设置的是HTML属性。2.直接操作元素的属性更直观,适用于常见属性,但无法设置自定义属性,且对某些属性效果可能不同。
-
Proxy代理绑定内存地址而非变量名,重赋值会断开响应式;应改内容而非换引用,或改用ref+toRefs、封装可重置reactive工厂函数。
-
应优先使用textContent或createElement+append渲染用户输入,避免innerHTML引发XSS;必须渲染HTML时须用DOMPurify等库净化;服务端需配合上下文编码与CSP头防护。
-
调好box-shadow的关键是让阴影自然融入环境:增大扩散半径(如卡片用04px12px)、降低透明度(浅色背景用rgba(0,0,0,0.08)~0.12)、匹配背景色温(暖色界面略带棕调,深灰界面用蓝灰),并借助开发者工具实时调整以增强呼吸感。
-
SCSS的transparentize()和opacify()是对颜色与黑/白按比例混合,非简单调整alpha;transparentize(#ff0000,0.2)等价于mix(#000000,#ff0000,20%),结果为暗红色而非rgba(255,0,0,0.8)。
-
inert属性是浏览器原生的语义化暂停机制,使元素及其子树完全脱离交互与可访问性树;需现代浏览器支持(Chrome111+、Firefox121+、Safari18.0+),JS设置须用element.inert=true,不可用setAttribute。
-
PCIDSS是保护持卡人信息的支付安全标准。使用JavaScript集成支付时,应避免处理敏感数据,通过Stripe等提供的托管表单或iframe,使卡号、CVV等信息直接由支付网关处理,仅获取令牌用于后端创建支付,从而落入最简SAQA合规级别。禁止在前端收集或加密信用卡信息,不得存储CVV等禁用数据,须使用官方SDK并启用CSP防护,确保始终符合PCI要求。
-
只有当元素频繁动画且已确认卡顿时才用will-change,须配合transform/opacity并动态启停;滥用会增内存开销、触发回流或过度分层。
-
grid-template-columns和grid-template-rows必须显式定义,否则display:grid不会自动布局;fr单位仅在Grid容器内按剩余空间分配;gap已替代grid-gap,旧版Safari需双写兼容;网格线从1开始编号;子元素margin不塌陷,推荐用gap代替。
-
当网页在手机浏览器中显示时,即使两个<a>元素使用完全相同的font-size(如1rem),也可能因浏览器的自动文本缩放机制而呈现不同大小;启用text-size-adjust:none可有效禁用该行为,确保视觉一致性。