-
命令模式通过将请求封装为对象,实现了请求发送者与接收者的解耦,使操作可参数化、存储、传递及撤销;它解决了复杂操作中高耦合和扩展难的问题,支持撤销/重做、宏命令、任务队列等场景;典型应用包括GUI按钮菜单、图像处理宏、异步任务队列和游戏行为控制;但其缺点是会增加类的数量,可能导致过度抽象,且撤销逻辑实现复杂,需权衡使用场景以确保收益大于成本。
-
appearance:none在iOSSafari上对select、date、number等控件基本无效,是Apple的系统级限制,旨在保障可访问性;仅text、search、textarea、button、checkbox、radio等基础控件在iOS≥16.4且配合-webkit-appearance:none时部分生效。
-
0b是纯语法糖,仅改变数值书写形式,编译期即转换为等价整型常量,不影响位运算逻辑、执行耗时及生成的机器码,与十进制或十六进制写法行为完全一致。
-
justify-content在flex换行后并非失效,而是仅作用于每行内部;末行对齐需用grid、gap+margin、占位符或JS动态补全等方案实现。
-
圆形头像需同时满足四个条件:正方形容器、border-radius:50%、overflow:hidden、object-fit:cover;缺一不可,否则会出现变形、偏移、白边或裁切失效等问题。
-
setCustomValidity()是唯一能覆盖默认错误文案并影响提交性的方法;必须在input和blur事件中每次都先调用setCustomValidity('')再判断设错,否则错误状态持续存在。
-
是的,打印时颜色变灰或消失通常因使用rgba()等含alpha的颜色函数,打印机不支持透明度;应统一替换为rgb()或十六进制色值,并检查SVG、组件库等隐含来源。
-
OffscreenCanvas必须由主线程通过transferControlToOffscreen()创建并移交,Worker中不可直接new;图表渲染需分离坐标计算(Worker)与像素绘制(OffscreenCanvas),且图像输入仅限ImageBitmap或TypedArray,禁用DOM元素。
-
BroadcastChannel可用但需同源、频道名完全一致、页面加载完成;常见问题包括频道名大小写/空格不一致、DOM未就绪时发送、非HTTPS环境禁用、未监听onmessageerror及热更新重复创建实例。
-
用rem+viewport缩放控制最稳妥,但必须禁用text-size-adjust,否则iOSSafari会强行放大小字号文本;根本原因是系统「可读性缩放」和浏览器对viewport解析差异,导致手机和平板文字表现不一致。
-
页面标题和metadescription必须服务端渲染进HTMLhead,客户端JS更新无效;字符数需严格控制(title50–60,description120–160),且每页唯一、动态生成、语义准确。
-
Intl.Segmenter是现代JavaScript中专为语言感知文本分割设计的API,能按Unicode图符簇(如emoji、组合字符、CJK字)精准切割,避免split('')或Array.from(str)按UTF-16代码单元拆分导致的显示错乱;支持granularity:'grapheme'/'word'/'sentence'及多语言locale适配,Chrome80+等主流环境原生支持。
-
JavaScript性能优化的核心是减少主线程阻塞、降低内存占用、避免不必要的计算和重排重绘,具体包括批量DOM操作、读写分离、事件委托、节流防抖、及时清理定时器与监听器、防止内存泄漏及拆分长任务。
-
原生popover是布尔属性,仅通过是否存在生效,不可赋值;必须静态存在于DOM中且ID匹配popovertarget;需显式设置z-index避免被原生控件遮挡;JS调用前须确保属性已存在并检测浏览器支持。
-
canvas.width/height设绘图缓冲区分辨率,style.width/height仅控制CSS显示尺寸;二者不一致会导致缩放失真;正确做法是按devicePixelRatio动态设置缓冲区并用CSS匹配显示尺寸。