vue3 ref为什么需要加一个.value?

在 Vue 3 中,`ref` 是用于创建响应式数据的一种方式。当你使用 `ref` 来创建一个响应式变量时,Vue 会将这个变量包装在一个对象中,并通过 `.value` 属性来访问和修改这个变量的实际值。

为什么在setTimeout中setState是同步执行的?

在 setTimeout中,setState 看似同步执行的原因,主要与 React 的更新机制和 JavaScript 的事件循环有关。让我们深入探讨一下其中的原理。

什么是 JavaScript 的临时性死区?

在 JavaScript 中,**临时性死区(Temporal Dead Zone, TDZ)** 是指在块级作用域(由 `let` 和 `const` 声明创建的作用域)中,变量在声明之前是不可访问的状态。即使变量已经被声明,但在其声明之前访问该变量会导致错误。这种机制帮助确保变量在初始化之前不会被使用,从而避免潜在的错误和不一致行为。

使用 let 全局声明变量,能通过 window 对象取到吗?

在 JavaScript 中,`let` 声明的全局变量不会被添加到 `window` 对象上。这与 `var` 声明的变量不同,`var` 声明的全局变量会成为 `window` 对象的属性。

JavaScript 中 Object.keys 的返回值是无序的吗?

在 JavaScript 中,`Object.keys` 返回的键的顺序不是完全无序的,但它并不总是按预期的顺序。ES6 规范对对象属性的顺序做了一些定义,具体来说,`Object.keys` 返回的键顺序遵循以下规则:

使用箭头函数定义 Vue 的 watch 属性会有什么结果?

在 Vue 中,`watch` 属性用于监听某个数据属性的变化,并在变化时执行相应的回调函数。通常情况下,`watch` 的回调函数会绑定到 Vue 实例,这意味着 `this` 指向 Vue 实例本身。然而,当使用箭头函数定义 `watch` 的回调函数时,会出现问题,因为箭头函数不会绑定它自己的 `this`,它会捕获上下文中的 `this` 作为自己的 `this`。

CSS 伪元素和伪类的作用和区别?

CSS 伪元素和伪类是用于选择和操作文档中特定元素的特定部分或状态的工具。尽管它们在语法上和功能上有相似之处,但它们的用途和实现是不同的。以下是对它们的详细解释:

z-index 属性在什么情况下会失效?

`z-index` 属性主要用于控制元素的堆叠顺序,只有在特定的条件下才会生效。以下是一些常见情况下 `z-index` 可能会失效或不起作用的原因:

说说你对 CSS 工程化的理解?

CSS 工程化是指在前端开发中,通过系统化的方法和工具链来优化 CSS 的编写、管理和维护。随着 Web 项目规模的扩大和复杂性增加,传统的 CSS 开发方式容易导致样式冲突、代码冗余和难以维护等问题。CSS 工程化的目标是通过模块化、规范化、自动化等手段,提升代码质量和开发效率。

说说对websocket的理解?应用场景?

WebSocket 是一种高效的实时通信协议,通过持久连接实现低延迟和全双工通信,适用于需要实时数据传输的各种应用场景。它解决了传统 HTTP 协议在实时性和双向通信上的不足,为现代 Web 应用提供了强大的支持。

dns协议是什么?说说dns完整的查询过程?

DNS 是互联网的核心服务之一,通过将域名解析为IP地址,使用户能够通过易记的域名访问网站。DNS 的分层结构和缓存机制保证了高效的查询速度和系统的可靠性。在实际操作中,用户感知到的域名解析过程通常是非常快速的,这得益于DNS服务器的分布式架构和缓存技术。