Interview
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
可以直接监听对象和数组的变化。当对象或数组发生变化时,Proxy
的 set
方法会被触发,并通知相关的依赖进行更新。
9. 虚拟DOM
Vue 使用虚拟DOM来提高DOM操作的效率。通过模板编译,Vue 生成 render
函数,该函数返回虚拟DOM。新旧虚拟DOM之间的差异通过 diff
算法进行比较,然后只更新差异部分,从而提高渲染效率。
本文使用 markdown.com.cn 排版
这篇好文章是转载于:编程之路
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 编程之路
- 本文地址: /boutique/detail/tanhhchajc
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22