-
推荐将复杂判断逻辑抽到computed中,因其具备命名、缓存、可调试、可复用优势;computed应纯净,不包含副作用或异步操作。
-
放在底部能避免DOM操作失败,因为浏览器自上而下解析HTML,脚本执行时确保所有DOM节点已构建完毕,可安全访问元素;若脚本提前执行,则document.getElementById等返回null。
-
滚动条宽度不一致引发布局偏移,根本原因是其占用视口水平空间(Chrome/Edge约17px、Firefox约16px、macOSSafari默认隐藏),导致body可用宽度突变;推荐优先使用html{scrollbar-gutter:stableboth-edges}预留空间,不支持时降级为body{padding-right:calc(100vw-100%)}补位。
-
V8通过解析生成AST,经Ignition解释执行并监控热点函数,由TurboFan优化编译;采用分代GC管理内存,利用隐藏类与内联缓存提升属性访问速度。
-
闭包是内部函数捕获并持久化外部词法环境变量的机制,核心条件是内嵌函数且引用外部变量;常用于防抖节流、私有变量封装及ReactHook等场景,但需警惕大对象导致的内存泄漏。
-
structuredClone()是现代JavaScript中唯一原生支持BigInt深拷贝的方法,能安全复制含BigInt、Date、RegExp、Map、Set及嵌套结构的对象,但不支持函数、undefined、Symbol、循环引用等;需检测兼容性(Chrome98+等),不支持时可降级为JSON方案或官方polyfill。
-
使用transition实现宽高平滑过渡,需避免height:auto,推荐max-height或transform:scale()优化性能,结合hover或JS控制状态切换。
-
小项目用基础静态网站结构,够用且零配置;中大型项目必须分src/dist。小项目指单人维护、页面≤5个、无构建需求的展示型站点,核心是路径稳定、一眼能猜到文件在哪:index.html放根目录,css/下只放main.css和reset.css,js/里放main.js和utils.js,images/按用途分icons/、banner/但不超过两层,多页面统一放pages/about.html等。中大型项目一旦用Sass、ES6模块等,源码必须与构建产物分离:src/存可编辑源码,dist/为构建产物(
-
活动弹窗需兼顾可见性、无干扰、高并发,应优先用语义化<dialog>元素并兼容Safari;结构上遮罩与弹窗须为兄弟节点;防重复弹出需服务端控制+sessionStorage兜底;定位必用position:fixed。
-
CSS变量不能直接存储复杂阴影值,需拆解为--shadow-x、--shadow-y等参数分别定义后组合使用;若用单变量存多层阴影,必须用引号包裹并确保逗号空格正确。
-
合格电子名片需语义化HTML结构(如header、section、address)、必加viewportmeta、用Flex+rem+媒体查询实现响应式,并慎用伪元素,优先内联SVG处理复杂图形。
-
textarea不能用resize限制字数,它仅控制拖拽行为;字数限制必须用maxlength属性或JavaScript监听,两者功能完全独立。
-
HTML5不支持原生Diffie-Hellman密钥交换,需依赖WebCryptoAPI实现ECDH(如P-256曲线),且必须在HTTPS/localhost安全上下文中运行;手动JavaScript实现DH存在精度、侧信道和中间人等严重风险。
-
用canvas手动画极坐标图最可控:需手动计算极坐标点、平移原点、绘制网格线;Chart.js雷达图易配错选项;D3.js推荐用d3-polar;CSStransform伪极坐标不可靠。
-
header代表语义上的“介绍性或导航辅助区域”,非视觉顶部;可嵌套于页面、文章或区块级作用域,须含恰当标题且与CSS布局解耦。