-
基础组件Props应用TypeScript接口明确定义,命名统一为[ComponentName]Props,必填不加?、可选显式标注,禁用any/Object,按需拆解传入字段,配运行时校验与默认值,并预留扩展字段如extraClass、ariaLabel等。
-
原生popover是布尔属性,仅通过是否存在生效,不可赋值;必须静态存在于DOM中且ID匹配popovertarget;需显式设置z-index避免被原生控件遮挡;JS调用前须确保属性已存在并检测浏览器支持。
-
现代项目不推荐圣杯/双飞翼布局,应改用Flexbox或Grid:前者适合高度不敏感场景,后者支持等高、间距、对齐及响应式函数如minmax()和clamp()。
-
定位元素的布局受父元素影响,关键在于包含块和已定位祖先。1.包含块由最近的已定位(relative、absolute、fixed、sticky)祖先决定,若无则相对根元素。2.父元素设为relative可作为子元素定位参考,不脱离文档流。3.absolute元素脱离文档流,相对于最近的非static定位祖先定位,偏移从内容区或border-box计算。4.fixed元素相对视口定位,通常不受父级影响;sticky元素依赖父容器滚动生效,需足够高度触发粘性。掌握这些机制可实现精准布局控制。
-
history.scrollRestoration='manual'用于禁用浏览器在前进/后退和刷新时自动恢复滚动位置,默认为'auto';设为'manual'后需配合beforeunload和pageshow事件手动调用scrollTo(0,0)确保置顶。
-
requestIdleCallback可在主线程空闲时执行低优先级任务,如埋点上报、预加载,比setTimeout更精准,但需兼容Safari16.4+;应缓存DOM查询结果、避免生产环境console.log、慎用JSON.parse(JSON.stringify())深拷贝。
-
PHP中需用$row['field']取值而非echo$row;Node.js模板传参要解构清晰;fetch需设Content-Type和CORS头;SQL注入与XSS须从首行代码防范。
-
页面切换本质是DOM替换而非整页刷新,需复用容器动态更新内容、同步history、服务端fallback、手动初始化脚本并清理事件监听器。
-
用Proxy动态代理第三方库导出对象,可在不修改源码前提下添加日志、监控等功能;通过get和apply拦截器增强函数调用,透传非函数属性;Node.js中可替换require.cache,前端构建时可用插件静态包裹,需注意toString等内置方法及不可枚举属性的兼容处理。
-
AndroidChrome加载file://下CSS/JS必须用./前缀,否则解析为系统根目录致404;video需遮罩封面、用户手势触发播放;Flex需全兼容声明;触摸和表单须手动干预样式与行为。
-
flex-grow控制子元素在容器有剩余空间时的扩展比例,flex-shrink决定空间不足时的收缩行为。默认flex-grow:0不扩展,flex-shrink:1可等比收缩。通过设置不同值可实现内容区自动填满、防止输入框压缩等布局效果。推荐使用flex简写如flex:1(等价于flex:110%)或flex:10auto,并配合min-width:0解决收缩失效问题,从而构建自适应弹性布局。
-
JavaScript的MediaAPI仅提供媒体元素控制接口和状态监听,不直接操作音视频数据;底层解码、处理需WebAudioAPI(音频)或Canvas/WebCodecs(视频)。
-
JavaScript的export和import语句在静态分析阶段建立模块间的绑定引用与依赖关系。1.引擎扫描export语句,记录导出的变量、函数等标识符绑定,如name和greet,不求值仅映射。2.import语句声明对其他模块导出名的依赖,引擎解析时确认来源模块存在对应导出并建立链接。3.通过递归分析import,构建完整的模块依赖图,明确加载顺序,支持循环依赖处理。4.静态分析验证语法正确性,检查导出是否指向有效声明、导入名称是否存在及命名冲突,错误提前在解析时报出。该机制确保ES模块依赖可预测
-
background-color默认填充内容区和内边距区,受background-clip控制;默认情况下,背景色覆盖content和padding区域,如设置background-clip:content-box,则padding透明。
-
外部样式表和<style>标签必须放在<head>中,<script>默认应置于</body>前;必须放<head>的脚本需加defer属性。