-
CSS引入方式有内联、内部和外部三种,推荐使用外部样式表以提升性能与维护性。link标签同步加载,兼容性好,而@import异步加载,存在渲染延迟且IE4不支持。老版本IE对CSS3、媒体查询支持差,最多识别31个link标签。现代实践建议用link引入主样式,结合条件注释适配IE,通过构建工具合并文件并用Autoprefixer添加前缀,确保兼容性与性能。
-
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头防护。
-
维修预约表单需设action(如/api/submit-maintenance)和method="POST";textarea须加name、wrap="soft"、maxlength并配JS字数提示;datetime-local兼容差,旧版Safari需降级为date+time;错误应按字段实时反馈而非堆在顶部。
-
auto-fill配minmax(250px,1fr)最稳:auto-fill预占位不塌缩,1fr为弹性上限,配合aspect-ratio和object-fit才能防图片变形,响应式优先,IE11需@supports降级。
-
Bun完全兼容Node.js的模块导入语法,importfsfrom'fs'和importfsfrom'node:fs'均可正常工作且性能无差异;推荐统一使用'node:fs'等显式协议导入,以提升代码可读性、明确模块来源,并为未来生态演进预留兼容性。
-
shape-outside必须搭配float才能生效,因浏览器仅对float:left/right元素计算其环绕区域;无float则完全忽略,属规范强制要求。
-
非HTTP环境下link标签失效时,应改用JavaScript动态注入内联style标签,并根据不同环境(Node.js、Electron、WebView等)选择对应读取CSS内容的方式,确保样式可靠生效。
-
getBoundingClientRect()返回元素在视口中的实际像素占据量(含transform、高DPI小数等),包含content+padding+border,不含margin;而style.width或getComputedStyle().width仅反映CSS声明值,不体现最终渲染结果。