-
WeakSet是仅存储对象且不阻止垃圾回收的集合,具有弱引用特性,只提供add、delete、has方法,适用于私有状态标记和避免内存泄漏,不可用于缓存或遍历。
-
浮动元素脱离文档流是因为float使元素脱离普通流并允许文本环绕,导致父容器塌陷;清除浮动需在父容器层面处理,常用伪元素法、overflow触发BFC或空标签法。
-
应通过浏览器打开HTML文件。首先右键HTML文件选择“打开方式”,指定默认浏览器并勾选“始终使用此应用”;若未关联,可通过控制面板的“默认程序”中将.html文件类型与浏览器关联;还可创建快捷方式,用命令直接调用浏览器运行指定HTML文件。
-
memoize是一种手动实现的缓存策略,用Map存储输入与输出,提升纯函数(尤其递归)性能;手写需支持可序列化参数、保持this上下文,JSON.stringify有局限,Map可避免键冲突。
-
JavaScript模块不是语法糖,而是需严格遵循export/import规则、在模块环境下执行的代码组织机制;默认脚本非模块,须通过type="module"或Node.js的"type":"module"启用,强制作用域隔离、显式依赖和静态路径。
-
正确做法是为表单控件统一设置width:100%;max-width:400px;box-sizing:border-box,并补充-webkit-appearance:none、margin:0和vertical-align:middle;textarea不可遗漏,字号宜用rem或clamp()响应式控制。
-
答案:JavaScript通过dataset属性或getAttribute/setAttribute方法访问和修改data-*属性,常用于存储元素配置、状态、API地址等数据,需注意数据类型转换、命名规范及避免存储敏感信息。
-
浏览器history对象受安全限制,仅pushState和replaceState可操作历史栈且不刷新页面;pushState插入新条目,replaceState替换当前条目;popstate仅在用户导航时触发;go/back/forward不可靠,不可用于流程控制;history.length不准确,scrollRestoration需早期设置;所有方法要求HTTPS或localhost安全环境。
-
<p>Array.prototype.sort方法默认按Unicode码点值排序数字数组可能导致错误结果,正确排序需提供比较函数。1.默认排序会将数组元素转换为字符串进行比较。2.正确排序数字数组需使用(a,b)=>a-b。3.降序排序使用(a,b)=>b-a。4.对象数组排序需基于对象属性,如学生成绩或名字。5.排序会改变原数组,需复制数组以保留原数据。6.性能和稳定性因引擎而异,需注意大数组排序和稳定性问题。7.国际化排序需使用Intl.Collator。</p>
-
可以构建不依赖打包工具的现代化SPA。利用原生ES模块、动态导入和前端路由,通过<scripttype="module">加载模块,使用import()按需加载页面,结合history.pushState和popstate实现路由切换,动态渲染页面内容,并借助本地服务器运行,适合中小型项目或教学。
-
::selection中RGB颜色未生效是因为多数浏览器仅支持不带透明度的纯色(如#2a5c82),禁用rgba()、hsla()等含alpha的写法;需用十六进制转换并加浏览器前缀,且iOSSafari完全不支持该伪元素。
-
通过开发者工具、页面渲染效果、控制台提示及JS监听事件判断CSS加载失败;2.常见原因包括路径错误、MIME类型配置不当、网络或权限问题;3.解决方案为修正路径、设置正确MIME类型、使用备用样式回退、内联关键CSS及CDN容错处理。
-
CSS定位核心是五种模式:static为默认流内定位;relative相对自身偏移且保留原空间,常作absolute参照;absolute脱离文档流,相对于最近非static祖先定位;fixed相对于视口固定,滚动不变;sticky在阈值内如relative,达到后如fixed。应用场景包括布局微调、模态框、导航栏等。
-
答案:在Node.js中结合Redis进行缓存可提升性能,常用策略包括CacheAside、TTL机制等,数据结构应根据场景选择String、Hash、List等以优化效率与内存使用。
-
本文提供一种可靠方案,通过performance.getEntriesByType('navigation')结合document.referrer判断页面加载方式,精准控制Lottie预加载动画仅在首次访问(外部跳转、地址栏输入、手动刷新)时显示,避免内部导航触发。