-
TreeShaking依赖ES6静态模块语法,通过分析import/export明确引用关系,标记未使用导出并在压缩阶段由Terser删除,需配置sideEffects并避免CommonJS以确保效果。
-
JavaScript可通过qrcode.js生成二维码,jsQR实现实时扫描解析,ZXing用于解析图片文件中的二维码,三者分别适用于网页生成、摄像头扫码和上传图片识别场景。
-
实现响应式设计的核心是利用媒体查询、弹性布局和相对单位,根据屏幕尺寸动态调整页面结构与样式;使用@media针对不同视口设置CSS规则,如手机(max-width:768px)和桌面(min-width:769px)断点适配。
-
最快方式是直接在<img>标签用opacity,但会整体透明;rgba()不适用于<img>;PNG自身alpha不可调;Canvas可逐像素控透明但失原生特性;SVG<image>支持opacity动画但有CORS和缩放限制。
-
必须用HTTP服务托管HTML,因file://协议导致手机扫码拒绝加载;二维码需动态生成且目标URL为完整可访问地址;须添加viewport元标签并确保路径、视口、资源加载一致。
-
使用伪类after清除浮动,通过添加clearfix类实现父容器高度自适应;2.设置父容器overflow:hidden或auto触发BFC包含浮动;3.采用display:flow-root创建BFC,现代浏览器推荐方案;4.避免使用额外clear元素。建议优先选择::after或flow-root方法。
-
使用:checked伪类可自定义单选框样式,通过隐藏原生input并结合label实现视觉替换。1.用appearance:none隐藏默认样式;2.利用label+:checked选择器创建自定义按钮或圆点效果;3.推荐将input嵌入label以简化结构;4.可扩展为开关或卡片选择器,通过兄弟选择器动态更新外观。关键在于:checked状态与label联动控制样式变化。
-
WebSocket需服务端配合、状态管理、错误重连和协议设计;常见问题包括URL协议错误(须用ws/wss)、连接拒绝、关闭异常及JSON序列化要求;应检查readyState、实现心跳与指数退避重连,并重视消息ID与离线队列。
-
多端同步的核心是各端基于统一规则和数据源独立推导一致状态。需分层管理状态:服务端权威、设备局部、用户偏好;采用事件驱动的增量同步机制;用状态机+副作用分离保障逻辑一致;冲突时乐观更新并自动合并。
-
应避免在循环中重复计算数组长度、滥用事件监听器、用try...catch包裹高频代码:需缓存length、用事件委托替代单元素绑定、移除非必要try...catch以提升V8性能。
-
是的,OKLCH更适合作为品牌色定义空间,因其将感知亮度(L)、色度(C)和色相(H)真正解耦,调色干扰少,支持禁用态降C、深色模式调L等精准控制,但需注意浏览器兼容性、白点声明、回退写法及色彩空间一致性。
-
a[href^="http"]可精准捕获HTTP/HTTPS外链,但需注意大小写敏感、HTTPS兼容及:visited伪类限制;文件与协议链接宜用[href$=".pdf"]和[href*="mailto:"]匹配。
-
clip-path:polygon()是现代浏览器实现六边形最直接可控的方式,需用百分比坐标如(50%0%,100%25%,100%75%,50%100%,0%75%,0%25%)并配合明确宽高或aspect-ratio确保居中与响应式。
-
必须用JavaScript动态修改input.type并同步处理焦点、光标、inputmode、aria-label等,才能安全兼容地实现密码明文切换;直接改type易导致值丢失、光标错位、键盘异常及可访问性失效。
-
for循环在大多数场景下比forEach快2–5倍,尤其数组长度超1000时更明显;因forEach每次迭代创建新函数作用域、隐式调用回调且无法用break中断,而for是原生指令级控制。