-
navigator.onLine仅读取系统网络接口状态,无法验证真实联网能力;true时可能DNS失败或服务器宕机,false时基本确认断网,需配合fetch探测和事件监听实现可靠判断。
-
行内元素默认间距源于HTML换行符和空格被浏览器解析为一个空格字符,并依font-size和line-height渲染;font-size:0+子级重置字号或display:flex+gap是稳定解决方案。
-
通过检测全局对象区分环境,如用isNode()判断;2.避免使用fs、document等平台特有API;3.用polyfill兼容功能差异,如node-fetch、path-browserify;4.采用ESM并配置package.json支持双模块语法,实现跨平台运行。
-
最可靠方案是用JavaScript监听input事件并正则替换,因type="tel"和pattern仅校验不格式化,无法自动添加分隔符;需用selectionStart/selectionEnd保存光标、replace(/\D/g,'')提取数字、setSelectionRange恢复位置,并特殊处理退格与粘贴。
-
可使用reversed属性(HTML5原生)、CSScounter重置与递减、flex-direction+order视觉反转、JavaScript动态注入四种方法实现ol倒序编号,其中reversed最简洁语义化。
-
WebSocket是基于TCP的全双工通信协议,支持浏览器与服务器持续连接、双向实时收发数据;通过newWebSocket()创建实例,监听onopen/onmessage/onerror/onclose事件,调用send()发送消息,需手动实现重连与错误处理。
-
discarded状态无法被JavaScript捕获,唯一可观察线索是pageshow中persisted===false;可靠保存时机仅freeze和pagehide(persisted=true),还原需基于localStorage或服务端快照冷启动重建。
-
JavaScript类型转换分显式和隐式:显式由开发者调用Number()、String()、Boolean()等控制,隐式由引擎在==、+、!等操作中自动触发;应优先用===、显式转换和类型检查来规避bug。
-
事件捕获阶段仅适用于click等DOM事件,而fetch、localStorage、copy等敏感操作不经过DOM事件流,故addEventListener捕获模式无效;真正有效的拦截需通过劫持全局API、Proxy代理或浏览器扩展实现。
-
使用navigator.clipboard.read()读取富文本需在用户触发的paste事件中调用,经语义解析、白名单过滤与DOM重建实现流式脱敏,兼顾安全与可读性,并提供多层降级兼容策略。
-
答案是设置viewportmeta标签并结合CSS媒体查询实现响应式设计。首先在HTML的<head>中添加<metaname="viewport"content="width=device-width,initial-scale=1.0">,使页面宽度匹配设备屏幕并禁止初始缩放;随后使用CSS媒体查询针对不同断点(如手机≤767px、平板768px~1023px、桌面≥1024px)调整样式,配合相对单位、Flexbox或Grid布局及ma
-
伪元素在:hover时能覆盖父元素背景,关键在于父元素需设position:relative以提供定位上下文,伪元素须设content、position:absolute及足够z-index,且避免父级隐式创建层叠上下文。
-
Object.getOwnPropertySymbols仅返回对象自身可枚举性为false的Symbol自有属性,不包含继承属性或字符串键;业务标识应使用Symbol.for()配合命名空间前缀确保全局唯一与语义清晰。
-
图片懒加载通过延迟加载非可视区图片提升性能,核心是用data-src存储真实路径,结合IntersectionObserver监听进入视口时加载,推荐使用ObserverAPI以提升效率并降低主线程负担。
-
该用::before和::after代替HTML标签当装饰性内容不参与语义、不被屏幕阅读器读取、也不需JS交互时;必须设content才渲染,伪元素默认inline需重置display,不触发事件且继承有限。