如何跨标签页通信
🎨 方案1:BroadCast Channel(对讲机频道) 🛠️ 方案2:Service Worker(隐形邮差) 📦 方案3:LocalStorage(共享小本本) 👨💻 方案4:Shared Worker(共享办公室) 🕵️♂️ 方案5 6:轮询侦查队(IndexedDB/Cookie) 👨👦 方案7:window.open(父子悄悄话) 🌐 方案8:WebSocket(专业电话线) 🧩 方案9:Shar...
面试必问:为什么Promise比setTimeout先执行
一、 进程与线程 在聊事件循环机制之前,我们先来聊一下进程与线程,这样有助于我们更好地理解事件循环机制。 1.进程与线程的基本概念 1.进程 定义 :进程是操作系统分配资源(如内存、CPU)的基本单位,每个进程独立运行且拥有独立的内存空间 前端场景 :浏览器中每个标签页通常对应一个独立的 渲染进程 ,负责HTML、CSS、JavaScript的解析和页面渲染。 特点 :进程间严格隔离,一个崩溃不会影响其他进程(如Chrome崩溃的标签页...
2025题目搜集
ES6新增了哪些特性 ES6(ECMAScript 2015)引入了许多新特性,主要包括以下几个方面: 1\. 变量和常量声明 和 (块级作用域,避免 的提升问题) 声明的变量不可重新赋值 2\. 模板字符串 反引号 \ ${}\ ()= {} this this ... function sum(...args) {} let arr2 = [...arr1] Map Set Set Map for...of Map Set Prom...
react面试题
面试官问题: 引起 react 组件重新渲染的常见原因有哪些? 答:重新渲染一般有如下几个原因 1. useState 中的 state 发生了更新 2. 父组件发生了更新 3. props 发生了更新 4. 订阅了 useContext,并且 context 的数据发生了更新 我们再来一一分析 一、State 发生更新 这是比较经典的场景了 当点击加一时,可以观察到控制台的打印 到这还算简单,注意听,面试官...
说说你对 Vue 中异步组件的理解
在 Vue 中, 异步组件 是指那些在需要时才加载的组件,而不是在应用初始化时就立即加载。这种机制可以显著提升页面加载速度和用户体验,尤其是在大型单页应用(SPA)中,通过懒加载的方式按需加载组件,避免不必要的资源浪费。 1\. 异步组件的基本概念 异步组件是在首次访问某个组件时,才通过网络请求或其他方式动态加载的组件。它允许将某些不常用的功能模块延迟加载,只有在用户触发相应操作时才加载相应的组件,从而优化性能。 2\. 在 Vue 中...
JavaScript 之 this指向
每当提到 JavaScript 的 关键字,许多开发者都会感到头痛。它似乎总是以出乎意料的方式工作,让人捉摸不透。但事实上,一旦你理解了 的行为,一切都会变得清晰起来。 的基本概念 在 JavaScript 中是一个特殊的关键字,它代表的是函数执行上下文中的“当前对象”。然而, 的指向并不是固定的,它取决于函数是如何被调用的。这一点在 ECMAScript 规范中有详细的定义: 并且,如果你不了解它的运作机制,有时就会出现一些你认为的莫...
Map 完全指南
JavaScript 中的 Map 完全指南 引言 在 JavaScript 中, 是一种用于存储 的数据结构,具有 键类型和丰富的方法。相较于传统的对象(Object), 提供了更高效的键值对操作方式,特别适合处理大量数据和需要频繁操作键值对的场景。本文将详细介绍 的创建、常用方法、迭代方式,并探讨它与对象的区别和实际应用场景。 1\. 创建 使用 来创建一个空的 。 也可以在创建时初始化 ,传入一个包含键值对的数组: 2\. 和对象...
slice、splice、split 三者的区别
slice(切割) slice 能够截取 字符串 或 数组,并返回一个新的 字符串 或 数组(不改变原字符串或数组) 功能一:截取字符串 从 start下标 开始,保留到 end下标 的前一个结束,如果没有 end,就保留到最后一个字符结束。 举一反三: 除了 能够截取字符串外,还有两个方法经常也被用来截取字符串,它们分别是: 与 。它们都能截取字符串,并且返回一个新的字符串(不改变原字符串)。 :截取字符串,从 start下标 开始,...
substring方法与substr的区别
JavaScript 提供了两个用于截取字符串的方法:substring 和 substr。虽然它们在功能上有些类似,但在使用和行为上存在一些差异。本文将对这两个方法进行全面比较,并提供示例代码来说明它们的用法和区别。 1\. substring 方法 substring(startIndex, endIndex) 方法用于从字符串中提取从 startIndex 到 endIndex 1(不包括 endIndex)之间的 。如果省略 e...