vue面试(4)

简介: 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 性能提升主要是通过哪几方面体现的?


相关文章
|
2月前
|
JavaScript 前端开发 应用服务中间件
【Vue面试题三十】、vue项目本地开发完成后部署到服务器后报404是什么原因呢?
这篇文章分析了Vue项目在服务器部署后出现404错误的原因,主要是由于history路由模式下服务器缺少对单页应用的支持,并提供了通过修改nginx配置使用`try_files`指令重定向所有请求到`index.html`的解决方案。
【Vue面试题三十】、vue项目本地开发完成后部署到服务器后报404是什么原因呢?
|
2月前
|
JavaScript 前端开发
【Vue面试题二十五】、你了解axios的原理吗?有看过它的源码吗?
这篇文章主要讨论了axios的使用、原理以及源码分析。 文章中首先回顾了axios的基本用法,包括发送请求、请求拦截器和响应拦截器的使用,以及如何取消请求。接着,作者实现了一个简易版的axios,包括构造函数、请求方法、拦截器的实现等。最后,文章对axios的源码进行了分析,包括目录结构、核心文件axios.js的内容,以及axios实例化过程中的配置合并、拦截器的使用等。
【Vue面试题二十五】、你了解axios的原理吗?有看过它的源码吗?
|
2月前
|
JavaScript 前端开发 数据处理
【Vue面试题二十八】、vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?
这篇文章讨论了Vue中实现权限管理的策略,包括接口权限、路由权限、菜单权限和按钮权限的控制方法,并提供了不同的实现方案及代码示例,以确保用户只能访问被授权的资源。
【Vue面试题二十八】、vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?
|
2月前
|
JavaScript 前端开发
【Vue面试题二十七】、你了解axios的原理吗?有看过它的源码吗?
文章讨论了Vue项目目录结构的设计原则和实践,强调了项目结构清晰的重要性,提出了包括语义一致性、单一入口/出口、就近原则、公共文件的绝对路径引用等原则,并展示了单页面和多页面Vue项目的目录结构示例。
|
26天前
|
缓存 JavaScript 前端开发
vue面试题
vue面试题
|
9天前
|
JavaScript
vue面试
vue面试
17 1
|
2月前
|
JavaScript 安全 前端开发
【Vue面试题二十九】、Vue项目中你是如何解决跨域的呢?
这篇文章介绍了Vue项目中解决跨域问题的方法,包括使用CORS设置HTTP头、通过Proxy代理服务器进行请求转发,以及在vue.config.js中配置代理对象的策略。
【Vue面试题二十九】、Vue项目中你是如何解决跨域的呢?
|
2月前
|
JavaScript 前端开发 编译器
【Vue面试题三十二】、vue3有了解过吗?能说说跟vue2的区别吗?
这篇文章介绍了Vue 3相对于Vue 2的改进和新增特性,包括性能提升、体积减小、更易维护、更好的TypeScript支持、新的Composition API、新增的Teleport和createRenderer功能,以及Vue 3中的非兼容性变更和API的移除或重命名。
【Vue面试题三十二】、vue3有了解过吗?能说说跟vue2的区别吗?
|
2月前
|
JavaScript 前端开发 API
【Vue面试题三十一】、你是怎么处理vue项目中的错误的?
这篇文章讨论了Vue项目中错误的处理方式,包括后端接口错误和代码逻辑错误的处理策略。文章详细介绍了如何使用axios的拦截器处理后端接口错误,以及Vue提供的全局错误处理函数`errorHandler`和生命周期钩子`errorCaptured`来处理代码中的逻辑错误。此外,还分析了Vue错误处理的源码,解释了`handleError`、`globalHandleError`、`invokeWithErrorHandling`和`logError`函数的作用和处理流程。
【Vue面试题三十一】、你是怎么处理vue项目中的错误的?
|
2月前
|
缓存 监控 JavaScript
【Vue面试题二十六】、SSR解决了什么问题?有做过SSR吗?你是怎么做的?
这篇文章详细介绍了服务端渲染(SSR)的原理、解决了哪些问题、以及如何在Vue应用中实现SSR,包括项目配置、代码结构、路由配置、数据预取和服务器端的渲染流程。
【Vue面试题二十六】、SSR解决了什么问题?有做过SSR吗?你是怎么做的?