-
要用JavaScript递归扁平化一个数组,核心思路是遍历每个元素并递归处理子数组,1.遍历数组中的每一项,2.若当前项是数组,则递归调用函数将其扁平化,并将结果合并到最终数组,3.若不是数组,则直接将其添加到结果数组,4.最终返回完全扁平化的一维数组,该方法天然适合处理未知深度的嵌套结构,因其问题本身具有递归特性,代码逻辑清晰且贴近人类分治思维。
-
WebWorkers是JavaScript在后台线程运行脚本的机制,用于避免密集计算阻塞主线程;通过newWorker()创建、postMessage()通信,不可操作DOM,适用于大数据排序、音视频处理、加密解密等场景。
-
URL和URLSearchParams是JavaScript处理URL的原生API:URL对象结构化解析/构造URL并自动同步更新,URLSearchParams专用于安全增删改查查询参数并自动编码解码,二者组合可清晰可靠地操作URL。
-
提取网页纯文本有五种方法:一、浏览器开发者工具手动复制;二、PythonBeautifulSoup库解析;三、JavaScript控制台执行;四、命令行工具w3m/lynx转换;五、正则表达式剥离标签。
-
GeolocationAPI仅在HTTPS或localhost下可用,HTTP协议下直接报错;必须显式传入success和error回调;enableHighAccuracy=true可能导致超时或失败;watchPosition需手动clearWatch防泄漏。
-
<p>最常用方法是使用toFixed(2)结合parseFloat或Number转换为数字,因toFixed返回字符串;对于精度要求高的场景,推荐使用Math.round(num*100)/100来避免浮点数误差;若需保留两位小数的格式化输出(如金额),可直接使用toFixed(2)保持字符串形式。</p>
-
可通过五种方法恢复网页文本可复制性:一、覆盖user-select:none为text;二、移除JavaScript阻止选中的事件监听;三、清除unselectable="on"属性;四、修正pointer-events禁用导致的选中失效;五、禁用遮罩类伪元素。
-
标签语句是JavaScript中用于标记循环或switch语句的语法,仅配合带标签的break或continue使用;breaklabel跳出指定标签语句,continuelabel跳至其下一次迭代。
-
浏览器开发者工具调试需精准使用功能:行断点优于debugger语句,EventListenerBreakpoints适配异步,sourcemaps解决压缩代码问题;console.table/group/time提升日志效率;Network面板重在Initiator和Waterfall分析;Elements面板善用伪类强制触发和DOM断点;console.dir(depth)应对proxy或优化导致的显示异常。
-
HTML5是PWA的必要前提,因其原生支持ServiceWorker、WebAppManifest和CacheAPI三大核心标准,而HTML4完全不支持;必须使用<!DOCTYPEhtml>声明、HTTPS协议及HTML5解析模式才能启用PWA全部能力。
-
样式不生效主因是层叠覆盖。1.优先级:内联>ID>类/属性/伪类>标签/伪元素;2.同优先级后定义者生效;3.非继承属性需显式设置;4.!important虽高但慎用。查开发者工具划掉项可快速定位问题。
-
Math.floor()用于向下取整,返回小于或等于原数的最大整数,如Math.floor(4.9)为4,Math.floor(-4.1)为-5,常用于分页计算等场景。
-
应按语义边界拆分公共CSS:组件级、布局级、主题级可独立,reset与typography合并为base.css;禁用@import,改用构建合并或link引入;CSS变量按模块作用域定义;PostCSS中需禁用cssnano的mergeLonghand等破坏复用的操作。
-
删除DOM节点主要有四种方法:1.remove()直接删除节点,兼容IE9以上;2.parentNode.removeChild()通过父节点删除子节点,兼容性好;3.innerHTML清空法批量移除子元素但会丢失事件;4.replaceWith()通过替换实现删除。
-
断点未生效通常因代码未执行、被JIT优化或sourcemap失效;应优先用debugger验证逻辑路径,禁用TurboFan优化,检查sourcemap配置,并在await行而非下一行设断点。