vue面试(4)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


提示:以下是本篇文章正文内容,下面案例可供参考

1. 为什么 GUI 渲染线程为什么与 JS 引擎线程互斥

首先由于js是可以操作dom的,如果同时修改元素属性并同时渲染界面,在这个时候,js线程和ui线程是同时运行的。
那么渲染线程前后获得的元素就可能不一致了,为了防止渲染出现不能估测的结果,浏览器就设定了GUI和GUI渲染线程和 JS引擎线程为互斥关系
当 JS引擎线程执行时 GUI渲染线程会被挂起,GUI更新则会被保存在一个队列中等待 JS引擎线程空闲时立即被执行

2. 从 Event Loop 看 JS 的运行机制?

JS 分为同步任务和异步任务
同步任务都在JS引擎线程上执行,形成一个 执行栈
JS引擎线程只执行执行栈中的事件
执行栈中的代码执行完毕,就会读取事件队列中的事件
事件队列中的回调事件,是由各自线程插入到事件队列中的
如此循环.

3. 什么是宏任务

我们可以将每次执行栈执行的代码当做是一个宏任务(包括每次从事件队列中获取一个事件回调并放到执行栈中执行)
每一个宏任务会从头到尾执行完毕,不会执行其他。

4. 什么是微任务

当 宏任务执行完,会在渲染前,将执行期间所产生的所有 微任务都执行完.
执行一个 宏任务(栈中没有就从 事件队列中获取)
执行过程中如果遇到 微任务,就将它添加到 微任务的任务队列中
宏任务执行完毕后,立即执行当前 微任务队列中的所有 微任务(依次执行)
当前 宏任务执行完毕,开始检查渲染,然后 GUI线程接管渲染
渲染完毕后, JS线程继续接管,开始下一个 宏任务(从事件队列中获取)

5. 面向对象的三大特性

封装,继承,多态。

6. 创建对象有几种方法

字面量创建的方式 比如 let obj = {name:1,age:100};
实例化对象的方式 let obj = new Object();
构造函数方式
工厂模式创建对象

7. 原型、构造函数、实例,以及原型链

原型:每一个构造函数都有一个prototype属性,这个属性称之为函数的显示原型,构造函数实例化后或者对象都有一个__proto__属性,称之为对象的隐式原型,后续原型链就是通过proto查找属性的。
构造函数:构造函数通过 new 生成实例
构造函数也是函数,构造函数的prototype指向原型。(所有的函数有prototype属性,但实例没有 prototype属性)
原型链:当我们访问对象的某个属性时,会先从当前对象中查找,如果没有找到的则继续去对象的proto隐士原型中去查找,,如果还没找到则继续向上级对象的原型中查找,直到找到顶层Object对象,如果没有找到返回undefined,这种通过对象的__proto__隐式原型查找属性的链条关系就称之为原型链。
实例:new创建的空对象。
三者关系:每个构造函数都有一个Prototype属性,prototype有一个constructor指向构造函数本身
当构造函数实例化以后,有proto属性,proto指向构造函数的prototype属性。

8. ES6中数组新增了哪些扩展

扩展运算符,Array.of();map()方法,Array.of()

9. ES6中对象新增了哪些扩展

简写对象,
对象解构赋值
super关键字
属性对象的遍历如:
for in循环遍历对象自身的和继承的可枚举属性;
object.key();返回一个数组,包括对象自身的
object.item();
Object.values()返回自身的(不含继承的)所有可遍历(enumerable)属性的键对应值的数组

10.ES6中函数新增了哪些扩展

ES6允许为函数的参数设置默认值
箭头函数的使用
name属性,返回该函数的函数名
参数设置默认值,

11.你是怎么理解ES6中 Promise的?使用场景?

Promise是ES6中的新增的异步处理方法,主要是用于解决ES5中使用回调函数产生的地狱回调的问题
Promise有三种状态,pedding准备中,fullfiilled已完成, rejected失败,状态只能有准备中=>已完成 或 准备中=>失败。
参数两个: resolve和reject 执行resolve参数方法会调用then方法,执行reject参数方法调用catch方法

12. 你是怎么理解ES6中Proxy的?使用场景

13. 你是怎么理解ES6中Module的?使用场景?

module:模板,模块的意思,简单来说就是能够独立运行的模板。
在代码的封装,代码的复用,等等一些地方都需要用到module,如果不使用module,在正常的项目中,不会出现什么,但是在大型项目资源难以维护,特别是多人合作的情况下,资源的引入会让人奔溃;变量和方法不容易维护,容易污染全局作用域;加载资源的方式通过script标签从上到下。

14. 你是怎么理解ES6中 Decorator 的?使用场景?

Decorator,即装饰器;
Decorator两大优点:代码可读性变强了,装饰器命名相当于一个注释;在不改变原有代码情况下,对原来功能进行扩展。
用法
Docorator修饰对象为下面两种:类的装饰;类属性的装饰。
类属性的装饰
当对类属性进行装饰的时候,能够接受三个参数:
类的原型对象
需要装饰的属性名
装饰属性名的描述对象

15. Vue3.0的设计目标是什么?做了哪些优化?

16. Vue3.0 性能提升主要是通过哪几方面体现的?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值