• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Interview

武飞扬头像
Michealer
帮助1

1. 数据类型

  • 基本数据类型:

    • string
    • number
    • boolean
    • null
    • undefined
    • symbol
    • bigint
  • 引用数据类型:

    • object
    • function
    • array

2. 原型的作用

原型的存在目的在于实现面向对象编程。JS为了实现面向对象,采用原型作为其中一种实现手段。一个支持面向对象的语言必须有类型的概念,而JS没有类型的概念,因此JS用原型来实现面向对象,从而避免了类型的丢失。

3. 原型链

原型链是由原型组成的链式结构,其主要作用是实现继承。原型链的终点是Object.prototype,而Object.prototype的原型是null。原型链的查找规则如下:首先在当前对象中查找,如果未找到,则继续在其原型中查找,依此类推,直到Object.prototype的原型。如果在整个原型链上都未找到,则返回undefined

4. 继承

继承允许子类继承父类的属性和方法。在JS中,继承是通过原型链实现的。具体来说,JS的继承有两种方式:

  • 原型链继承: 子类的原型指向父类的实例,这样子类的原型就继承了父类的属性和方法。
  • 构造函数继承: 在子类的构造函数中调用父类的构造函数,这样子类的实例就继承了父类的属性和方法。

5. GET 和 POST 的区别

  • 协议层面: 语义上的区别。

  • 应用层面:

    • GET 请求的参数在URL中,请求体为空。
    • POST 请求的参数在请求体中。
  • 浏览器层面:

    • GET 请求会被浏览器主动缓存,而POST请求则不会。
    • GET 请求参数长度有限制,POST请求无此限制。
    • GET 请求会被浏览器记录在历史中,POST请求则不会。
    • 刷新页面时,GET请求直接刷新,而POST请求会出现提示。

6. Promise 解决了什么问题

Promise 提供了一种统一的异步实现方案,主要解决了回调地狱的问题。尽管它并没有完全消除回调地狱,也没有完全消除回调函数,但它将回调函数的嵌套改为了链式调用,使得回调更加可控。

很抱歉,我会为你恢复并格式化第七条内容:

7. Vue2 的响应式原理

Vue2 使用 Object.defineProperty() 方法来实现响应式。它会递归遍历响应式数据,将每个属性转换为 getter 和 setter 方法。当属性发生变化时,setter 方法会被触发并通知相关的依赖进行更新。但这种方式只能监听对象的属性,不能监听数组的变化。因此,Vue2 对数组的一些方法进行了重写,使其在操作时能够通知依赖更新。这些重写的方法包括:push, pop, shift, unshift, splice, sort, 和 reverse

具体来说:

  • render 函数在运行时使用响应式数据,这些数据会收集依赖,因此当响应式数据发生变化时,会通知 watcher 进行更新。
  • Observer: 递归遍历响应式数据,将其转换为 getter 和 setter 方法。这发生在 beforeCreate() 之后和 created() 之前。$add$delete 方法也会触发 observer 方法。
  • Dep (Dependency) : 是一个依赖收集器,用于收集依赖。当响应式数据发生变化时,它会通知依赖进行更新。为响应式对象中的每一个属性、对象本身、数组本身创建一个 dep 实例。dep 有两个主要功能: a. 记录依赖:谁在使用这个数据。 b. 派发更新:数据发生变化时,通知使用此数据的所有依赖。
  • Watcher: 是一个观察者,用于观察响应式数据的变化。当响应式数据发生变化时,watcher 会通知依赖进行更新。
  • Scheduler: 是一个调度器,用于调度 watcher。当响应式数据发生变化时,它会通知依赖进行更新。

再次为丢失的数据向您表示歉意,并感谢您的耐心。

8. Vue3 的响应式原理

Vue3 通过使用 Proxy 来实现响应式。与 Object.defineProperty() 不同,Proxy 可以直接监听对象和数组的变化。当对象或数组发生变化时,Proxyset 方法会被触发,并通知相关的依赖进行更新。

9. 虚拟DOM

Vue 使用虚拟DOM来提高DOM操作的效率。通过模板编译,Vue 生成 render 函数,该函数返回虚拟DOM。新旧虚拟DOM之间的差异通过 diff 算法进行比较,然后只更新差异部分,从而提高渲染效率。

本文使用 markdown.com.cn 排版

这篇好文章是转载于:编程之路

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 编程之路
  • 本文地址: /boutique/detail/tanhhchajc
系列文章
更多 icon
同类精品
更多 icon
继续加载