-
BEM通过block__element--modifier命名结构建立样式隔离墙,防止命名冲突与作用域污染;block为独立可复用组件,element为其直属组成部分,modifier仅描述状态变体,三者职责分明、不可混用或跨层嵌套。
-
应使用语义化<table>结构实现收支明细列表,配合datetime属性、.income/.expense类名、右对齐金额、纯文本符号(如-¥120.00),移动端用CSS媒体查询转为垂直dl布局,并确保导出与可访问性兼容。
-
JavaScriptDate对象默认使用本地时区而非UTC,导致跨时区行为不一致;ISO带Z或偏移的字符串按UTC/指定时区解析,纯日期字符串行为不可靠;推荐全链路用UTC时间戳+toLocaleString({timeZone})格式化。
-
闭包本身不构成熔断器,但可封装状态、配置与上下文,协同熔断管理、异步降级和缓存兜底;需独立控制单次超时(如Promise.race)、区分超时与熔断失败、校验缓存时效性与版本,并管控闭包生命周期防泄漏。
-
appearance:none单独使用基本无效,必须配合-webkit-appearance:none、-moz-appearance:none三前缀声明,立即设置width/height防塌缩,并用position:absolute+clip隐藏原生控件以保障可访问性与点击区域。
-
Node.js中CJS与ESM模块路径解析机制不同:CJS通过Node算法按package.json"main"、index.js等顺序宽松查找;ESM则严格依赖package.json的"type"和"exports"字段,无配置即报错,体现宽容推断与严谨声明的设计差异。
-
使用overflow:hidden可隐藏盒子内溢出的内容,适用于文本过长、图片偏移等场景,结合text-overflow:ellipsis可实现文本省略,需注意元素需有明确宽高或BFC,且会同时隐藏所有溢出内容。
-
全等(===)不进行类型转换,相等(==)会隐式转换类型后再比较;===要求类型和值均相同,==则按规则转换后比较,如0==false为true而0===false为false。
-
语义化HTML通过header、nav、main等标签明确页面结构,提升可读性与无障碍访问;合理使用标题层级(h1-h6)、表单label关联及ARIA属性,确保辅助技术准确解析内容,增强用户体验。
-
高频排版时光标丢失本质是焦点管理脱节:点击表格等操作使原生DOM元素获焦而编辑器未接管。需用event.target识别干扰节点并拦截聚焦,智能重聚焦至合法区域,初始化时用白名单加固焦点边界。
-
linkrel="preload"as="image"失效主因是路径无效、类型不匹配、时机过晚或MIME不符;应置于head顶部、验证Content-Type、配合fetchpriority="high"精准预加载首屏关键图。
-
使用CSS颜色变量结合媒体查询可提升响应式布局的维护效率与主题适配能力。通过:root定义全局变量如--color-primary,并在不同断点或深色模式中动态重设,实现跨设备视觉统一。组件直接引用var()调用变量,结构清晰且自动同步更新。建议规范命名如统一前缀--color-以避免冲突。
-
答案:通过flex属性组合实现固定与弹性宽度布局,如侧边栏固定、内容区自适应。具体为设置flex:00宽度值保持固定,flex:1使元素占据剩余空间,结合min-width:0防止内容溢出,适用于多组件响应式排列。
-
计算属性通过在get函数中主动兜底来安全处理null/undefined:对象解构用user||{}或可选链+空值合并,深层嵌套逐层判断,数值运算显式转数字,空值返回有意义默认值。
-
根本原因是浏览器默认启用长按文本选择,由user-select初始值决定;需结合user-select:none、-webkit前缀、touchstart拦截及针对性重置才能可靠禁用。