-
盒子高度不设height仍不撑开,根本原因是子元素脱离文档流(如position:absolute、float)、flex/grid布局主轴方向不当、或overflow:hidden等CSS规则压制。
-
判断用户在哪个input卡住需监听聚焦离开、输入删除、停留无输入三类行为,结合实时校验、规范autocomplete、手动埋点分析,区分真实困难与设计缺陷。
-
推荐将复杂判断逻辑抽到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存在精度、侧信道和中间人等严重风险。