面试 15
-
【每日一面】HTTP 和 HTTPS 的区别
基础问答 问:HTTP 和 HTTPS 有什么区别? 答:1. HTTPS 是 HTTP + SSL/TLS 协议的一个组合,使用 SSL/TLS 加密,相对更安全。2. 端口使用不同,HTTP 使用 80 端口,HTTPS 使用 443 端口。3. HTTPS 由于加密设计需要多次握手,HTTP
-
【每日一面】webpack plugin 原理
基础问答 问:什么是 Webpack Plugin?它的核心作用是什么? 答:Webpack Plugin 是 Webpack 插件系统,本质是一个实现了 apply 方法的 JavaScript 类或函数。Plugin 通过 Webpack 提供的构建生命周期的回调钩子介入构建全流程(如初始化配置
-
【每日一面】如何解决内存泄漏
基础问答 问:有没有遇到过内存泄漏?怎么排查处理的 答:前端页面上出现内存泄露,使用 Chrome devtools -> memory 工具排查,选择时间轴分配(Allocations on timeline)功能后开始录制操作,在页面上进行相关组件的操作,停止录制后,查看内存曲线,重点关注内存曲
-
【每日一面】webpack loader 原理
基础问答 问:webpack 的 loader 了解吗,有什么作用?为什么 webpack 会需要 loader? 答:webpack 本身仅能够识别 JavaScript 和 JSON 文件,但实际项目开发中会用到 CSS、Less、图片、Vue 组件等多种格式资源,Loader 就是用来解决这个
-
【每日一面】BOM 是什么
BOM 是什么 基础问答 问:了解过 BOM 吗?他和 DOM 有什么差异? 基础问答 问:了解过 BOM 吗?它和 DOM 有什么差异? 答:BOM 是浏览器对象,指的是如 window ,location ,history ,screen 等由浏览器提供的操作对象,是提供给开发人员操作浏览器的部
-
【每日一面】装饰器原理
装饰器原理 基础问答 问:什么是装饰器?有什么作用? 答:装饰器是一种元编程语法,可以在不修改原有代码的前提下,动态地为类、方法、属性等添加一些能力,本质上还是一个函数,它接收目标对象、属性名、属性描述符(或类本身)作为参数,返回修改后的目标对象或属性描述符。 在使用的时候,是声明式的使用,在装饰器
-
【每日一面】实现一个深拷贝函数
基础问答 问:知道浅拷贝和深拷贝吗?为什么要用深拷贝? 答:拷贝,可以认为是赋值,对于 JavaScript 中的基础类型,如 string, number, null, boolean, undefined, symbol 等,在赋值给一个变量的时候,是直接拷贝值给变量,而对于引用类型,如 obj
-
【每日一面】你怎么理解 Proxy 的
基础问答 问:Proxy 是什么?怎么使用的? 答:Proxy 是用于创建 “对象代理” 的构造函数,它能封装目标对象(target),并通过 “拦截器对象(handler)” 自定义目标对象的基础操作(如属性读取、赋值),实现对对象行为的 “劫持”,手写使用方式。 // 语法:new Proxy(
-
【每日一面】对 Promise.race 的理解
基础问答 问:有使用过 Promise.race 吗,说说他的作用。 答:Promise.race 接收一个 Promise 数组(或者一个具有迭代器的对象)作为参数,返回一个新的Promise,这个新的 Promise 结果是数组中第一个状态变更的Promise对象,无所谓这个状态是否是成功(fu
-
【每日一面】async/await 的原理
基础问答 问:async/await 的原理是什么? 答:关键字本身就是 Promise 的语法糖,依托于生成器函数 (Generator) 函数能力实现的。async 关键字标志这个函数为异步函数,并且将返回结果封装为一个 Promise,await 则是暂停当前执行,等待后续的异步操作完成后再恢