-
for...in遍历对象的键,包括继承的可枚举属性;for...of遍历可迭代对象的值,如数组、字符串等,依赖Symbol.iterator。
-
HTML向JS传递空对象参数有四种方法:一、用data-param="{}"存JSON字符串并解析;二、内联onclick="handleClick({})"直接传字面量;三、用addEventListener或bind预绑定{};四、通过隐藏input模拟对象结构再聚合还原。
-
JavaScript定时器通过setTimeout(延时执行一次)和setInterval(按间隔重复执行)实现,均返回ID用于clearTimeout/clearInterval清除;需注意非精确性、后台节流及及时清理避免内存泄漏。
-
<p>旧版Safari和IE不支持display:grid,需用flex降级并注意兼容细节:IE10需加-ms-前缀且不支持flex:1缩写,Safari6.1–8.0不支持align-content;推荐先写flex基础布局,再用@supports覆盖grid,避免混用导致冲突。</p>
-
WeakMap和WeakSet是以弱引用为核心的集合类型,适合处理与对象生命周期绑定的临时数据;WeakMap键必须为对象,用于存私有状态、DOM状态或缓存;WeakSet仅存对象,适用于存在性判断如防递归、事件监听;二者均不支持遍历与size等方法,不可替代Map/Set作通用集合。
-
class用于元素分组和样式复用,id用于唯一标识和精确操作;class适合多数样式和交互场景,id适用于锚点、表单关联及JavaScript唯一引用,避免滥用id定义样式和重复id确保代码可维护性。
-
TensorFlow.js是纯JavaScript重写的轻量级前端ML框架,支持浏览器/Node.js环境,通过张量操作、预训练或自定义模型、WebGL/WASM/CPU自动加速实现机器学习;需手动内存管理,适用于隐私敏感、低延迟、教学及边缘部署场景。
-
this的指向由函数调用方式决定,四种绑定规则按优先级从低到高为:默认绑定(非严格模式指向window,严格模式为undefined)、隐式绑定(方法调用时指向上下文对象)、显式绑定(通过call、apply、bind指定this)、new绑定(构造函数调用时指向新创建的实例)。
-
可在HTML5中通过img标签嵌入GIF、CSSbackground-image设置背景GIF、CSS关键帧动画模拟GIF,以及添加加载失败备用方案来实现动态效果。
-
WebRTC是浏览器原生支持的开放标准,提供MediaStream、RTCPeerConnection和RTCDataChannel三类API实现P2P音视频与数据传输;需信令服务器交换SDP和ICE候选信息以建立连接。
-
JavaScript可通过navigator.clipboard实现安全复制粘贴,需HTTPS/localhost环境及用户手势触发;writeText()和readText()分别处理纯文本读写,返回Promise;权限需permissions.query检测,旧浏览器可降级execCommand;富文本或图片需write()配合ClipboardItem,兼容性有限。
-
<p>BigInt是ES2020引入的用于安全表示超大整数的数据类型,解决Number类型在超过2^53-1后精度丢失的问题;可通过在整数后加n或调用BigInt()函数创建;支持与自身类型的数学运算,不兼容number类型混合计算;与number比较时需注意类型差异,推荐用toString()避免精度损失;适用于大整数ID、加密运算、高精度时间戳等场景。</p>
-
前端JavaScript压缩图片的核心原理是利用CanvasAPI将图片绘制到Canvas上,通过调整尺寸和导出质量来减小文件大小;2.主要步骤包括:获取图片文件或img元素、使用FileReader读取为DataURL、创建Image对象并加载、创建canvas绘制缩放后的图片、通过toBlob或toDataURL导出压缩数据;3.关键参数有图片尺寸(保持宽高比下限制最大宽高)、导出质量(0-1之间的quality值,JPEG推荐0.7-0.85)、图片格式(JPEG适合照片,PNG适合透明图,WebP
-
模块模式通过闭包封装私有状态,解决全局变量污染问题;观察者模式实现发布-订阅机制,降低组件耦合;工厂模式统一对象创建,隐藏实例化细节。合理使用这些模式可提升代码可维护性与团队协作效率,但应避免过度设计,优先选择清晰简单的实现,结合工具固化最佳实践,重点在于解决实际问题而非套用形式。
-
ServiceWorker通过缓存策略实现离线访问和性能优化,需先注册并经历安装、激活等生命周期阶段。采用缓存优先、网络优先或先缓存后更新等策略可提升资源加载效率,结合版本控制与缓存清理确保数据有效性,仅在HTTPS或本地环境中使用。