-
闭包是内部函数捕获并持久化外部词法环境变量的机制,核心条件是内嵌函数且引用外部变量;常用于防抖节流、私有变量封装及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布局解耦。
-
flex-wrap:wrap换行失效主因是父容器无宽度限制或子元素默认min-width:auto导致强制撑宽;应设父容器width/max-width,避免flex:1,改用flex:00auto或固定宽+flex-shrink:0,并禁用white-space:nowrap;间距推荐用gap替代margin防换行错位。
-
<metacharset="UTF-8">必须置于<head>最开头,否则浏览器会以错误编码解析前面的中文内容,导致乱码且无法挽回;<htmllang="zh-CN">影响读屏、SEO和翻译;语义化标签保障嵌套安全与可访问性;<metaname="viewport">是响应式刚需,缺之则移动显示异常。
-
直接拼接HTML字符串极易引发结构错乱、编码异常、脚本失效等问题;推荐用BeautifulSoup提取各文件body子节点合并,或用jQueryload()动态加载,兼顾安全与可维护性。
-
BEM通过block__element--modifier命名强制作用域隔离,降低样式覆盖成本;禁用复杂选择器、依赖工具链校验与编辑器支持,并需配合设计令牌管理全局变量。