![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每天一道面试题
文章平均质量分 78
一只自由的程序媛
凡心所向,素履所往
展开
-
今天的一道面试题(21) -说一下HTTP各版本以及HTTPS之间区别
文章目录HTTP概述GET和POST的区别HTTP1.0HTTP1.1HTTP2HTTP1.1问题引入HTTP2HTTP2其他特性HTTP2的缺陷HTTPS对称加密和非对称加密结合添加证书HTTP概述HTTP(超文本传输协议)是一个基于TCP的应用层协议GET和POST的区别GET提交的数据放在URL中, 不适用一些私密数据的传输, POST提交的数据在header中,但是也无法保证安全性, 没有加密过GET提交的数据大小有限制(是因为浏览器对URL的长度有限制,GET本身没有限制),POST没原创 2021-11-17 20:21:26 · 1058 阅读 · 0 评论 -
今天的一道面试题(20) - 详细讲述一下浏览器的循环系统
先综述一下:浏览器在执行js时有一个渲染主线程, 但是其他IO线程, 网络进程等等也可以向主线程发送一些任务, 必须输入输出, 下载等等, 就引入了消息队列消息队列中存放的是其他线程和进程发送过来的任务, 每一个任务都是一个宏任务, 浏览器在执行时, 每次从队列首部取出最老的一个任务开始执行setTimeout异步任务 : 存放在延迟消息队列中, 在浏览器执行完消息队列中的一个最老的任务后, 会取出延迟消息队列中到期的延迟任务, 开始执行. (所以setTimeout可能会有延迟, 不一定到期之后就原创 2021-11-14 17:23:25 · 1870 阅读 · 6 评论 -
今天的一道面试题(19) - V8垃圾回收机制
参考 - 浏览器工作原理与实践文章目录V8的内存管理机制栈中的内存是如何回收的堆中的内存是如何回收副垃圾回收器 - 新生代主垃圾回收器 - 老生代全停顿如何避免内存泄漏V8的内存管理机制栈中的内存是如何回收的function foo(){ var a = 1 var b = {name:" 极客邦 "} function showName(){ var c = " 极客时间 " var d = {name:" 极客时间 "} } sho原创 2021-11-08 23:23:33 · 821 阅读 · 0 评论 -
今天的一道面试题(18) - 说一下浏览器缓存
浏览器缓存主要分为强缓存和协商缓存, 我们主要记住浏览器缓存的这个工作流程以及几个主要字段参考链接 掘金- 彻底理解浏览器的缓存机制文章目录强制缓存Expires(HTTP/1.0)Cache-Control(HTTP/1.1优先级更高)协商缓存Last-Modified / If-Modified-SinceEtag / If-None-Match(优先级更高)总结强制缓存强制缓存就是向浏览器缓存查找该请求结果,并根据该结果的缓存规则来决定是否使用该缓存结果的过程,强制缓存的情况主要有三种(暂不分原创 2021-11-07 20:11:30 · 245 阅读 · 0 评论 -
今天的一道面试题(17) - 讲一下跨域问题
感觉这个问题的出场率还是挺高的, 很多时候我们都知道就是那么回事, 但是语言组织上就是差点意思.所以, 实在不行就背下来吧阮一峰 - 浏览器同源政策及其规避方法阮一峰- 跨域资源共享详解文章目录为什么要跨域常见的跨域方式JSONP - 服务端配合更改格式CORS - 服务端返回ACAO字段简单请求非简单请求CORS和JSONP的对比proxy代理 - 中间件解决跨域document.domin - 基础域名相同 子域名不同window.name - 同一个tab下的所有页面共享window.POST原创 2021-11-06 17:35:45 · 295 阅读 · 0 评论 -
每天一道面试题(16) - useReducer&useContext实现状态管理
如果在上一篇文章里那个问题: 说一下常用的hooks 里能够回答出 useReducer&useContext实现状态管理 , 应该会加分吧. (猜测的, 没经过试验哈哈)useReducer还是上一篇中的例子function TestReducer() { const reducer = (state, action) => { switch (action) { case 'add': return st原创 2021-10-28 20:39:15 · 332 阅读 · 0 评论 -
每天一道面试题(15) - 常用的hooks有哪些, 具体说一下
说一下常用的hooks?这道题是一道开放题, 只能说出来名字只是最初级的答案.能具体说出每个hook的使用场景并结合有关联的hook进行对比回答才算是一个合格的答案文章目录useStateuseState的异步问题useState为什么返回是一个数组而不是对象useEffectuseEffect用法useEffect && useLayoutEffect的区别useReducer用useReducer实现一个useStateuseReducer+useContext实现状态管理us原创 2021-10-27 19:21:05 · 1418 阅读 · 0 评论 -
每天一道面试题(14) - webpack热更新使用及其原理
文章目录为什么需要热更新使用热更新以及遇到的问题构建过程热更新原理为什么需要热更新在文件更新时, 希望能保持页面当前的状态值, 而不是直接刷新页面, 可以大大节省宝贵的开发调试时间使用热更新以及遇到的问题使用热更新第一种方案, 使用module.hot.accept()if (module.hot) { module.hot.accept()}axios响应拦截器中返回的响应参数是上次拦截器返回的数据原因是什么呢?因为module.hot.accept()意思是重新执行一遍当前原创 2021-10-15 19:56:55 · 535 阅读 · 0 评论 -
每天一道面试题(13) - webpack, babel, loader等原理解析
偷懒了这么些天, 终于又开始更新啦~~文章目录前端代码为什么要进行构建和打包?webpack的打包原理loader和plugin的区别?编写loader和pluginBabel是什么, 与webpack的区别Babel的工作原理babel-runtime和babel-polyfill作用及区别前端代码为什么要进行构建和打包?体积更小(压缩, 合并), 加载更快编译高级语言和语法(TS,ES6,模块化,scss)兼容性和错误检查(plyfill, postcss, eslint)统一, 高效的开原创 2021-10-13 19:26:47 · 780 阅读 · 0 评论 -
每天一道面试题(12) - resolve(reject(1))走then还是catch
之前面试时遇到这个问题, 当时脑子不太好使没想到这道题的考察点是什么.后来复盘了一下才反应过来这道题考的是函数调用栈啊!文章目录什么是函数调用栈resolve(reject(1))走then还是catch函数调用栈的其他问题场景什么是函数调用栈定义参考链接程序在运行期间,内存中有一块区域,用来实现程序的函数调用机制。这块区域是一块LIFO的数据结构区域,我们可以叫函数栈(调用栈)。每个未退出的函数都会在函数栈中拥有一块数据区,我们叫函数的栈帧。函数的调用栈帧中,保存了相应的函数的一些重要信息:函原创 2021-09-28 20:12:17 · 270 阅读 · 0 评论 -
每天一道面试题(11)- dom是如何渲染的
文章目录DOM树渲染的主要工作原理具体工作流程总结其他特殊情况有js标签怎么办引入外部js的情况css对渲染的影响总结在输入url到界面渲染完成发生了什么 这道题中有一个流程是 浏览器根据请求到的html渲染一棵DOM树那么请问, 这个DOM树是怎么渲染的?在渲染引擎内部,有一个叫HTML 解析器(HTMLParser)的模块,它的职责就是负责将 HTML 字节流转换为 DOM 结构HTML 解析器并不是等整个文档加载完成之后再解析的,而是网络进程加载了多少数据,HTML 解析器便解析多少数据原创 2021-09-28 18:01:58 · 241 阅读 · 0 评论 -
每天一道面试题(10) - 浏览器输入url发生了什么 - 思维导图
这道题很多地方都有答案, 今天整理了一张思维导图, 便于时常复盘不允许转载!原创 2021-09-27 17:42:02 · 102 阅读 · 0 评论 -
每天一道面试题(9) - react hooks的优点
在社招中, 如果项目经验中有react hooks, 面试官就经常会问到这个问题.今天就来系统的总结一下回答这个问题的要点, react hooks的主要优点有以下几点更容易复用代码(最重要)副作用统一处理, 不需要维护各个生命周期代码可读性更强, 代码风格更简洁清爽更容易复用代码如果类组件要复用代码, 经常需要高阶组件.但是高阶组件HOC有两个问题HOC需要在原组件上进行包裹或者嵌套,如果大量使用 HOC,将会产生非常多的嵌套,这让调试变得非常困难。HOC可以劫持 props,在不原创 2021-09-22 19:19:35 · 1360 阅读 · 0 评论 -
每天一道面试题(8) - 浏览器和node中的事件循环机制
说一下浏览器和node中的事件循环机制这道题大部同学都能答上来宏任务和微任务, 不知道浏览器事件循环请移至 10 分钟理解 JS 引擎的执行机制但是对于node中的事件循环, 很多人都没有系统的学习过, 本篇文章主要梳理一下在回答这个问题时的要点本文将从以下两个方面进行梳理, 大家在面试的时候也可以按照这个思路进行回答浏览器的事件循环node中的事件循环机制node中事件循环机制的注意事项浏览器的事件循环由于JS是单线程的, 如果自上而下执行, 一段代码运行时间过长, 下面的代码就会.原创 2021-09-18 21:54:13 · 270 阅读 · 1 评论 -
每天一道面试题(7) - JS中的模块化
面试官问: 解释一下JS中的模块化刚开始接触前端时, 看见那几个名词就觉得太高大上了, 都不知道是什么, 慢慢的我发现, 其实大多数时候那些专有名词都是给很简单的概念一个好听的名字罢了, 比如:react中的高阶组件(不就是组件作为参数进行一定的装饰再返回一个组件嘛)比如模块化, 就是JS中将不同功能的代码封装在不同的文件中, 再互相引用时不会发生命名冲突的一种思想, 大多数情况下, 一个文件就是一个模块模块化这一思想的不同实现, 有多种方案, 主要有以下几种CommonJSES6模块化原创 2021-09-16 19:54:32 · 571 阅读 · 0 评论 -
每天一道面试题(6) - 总结ES6, ES7,ES8的新特性
本文只做总结, 不做详细解释ES6新特性ES6新特性比较多, 可以将这个特性分为功能和语法糖两个类别.在回答问题时也会比较有条理定义变量let, constES6中可以使用let定义变量, const定义常量, 二者是块级作用域这里说一下let和var的区别var在全局声明的变量可以通过window获取到, 成为了window的属性let的作用域只在代码块内,块外无效;var全局有效{ let a = 10; var b = 1;}a // ReferenceError:原创 2021-09-15 21:07:36 · 845 阅读 · 0 评论 -
每天一道面试题(5) - 详细讨论一下js的原型问题
对于js的原型, 前端er应该多多少少能说上一点. 但是可能大部分人应该都没有深入研究过, 上周专门研究了一下这个问题, 今天在这里做个记录今天只深入研究, 默认对于基本的原型知识已经掌握, 没有掌握的请自行补习~js的原型是什么prototype和__proto__的区别和联系constructor看懂这张图instanceof的特例情况分析js的原型是什么每个构造函数都有一个原型对象prototype,原型对象上包含着一个指向构造函数的指针constructor(原型对象没有被重写的原创 2021-09-13 22:34:57 · 137 阅读 · 0 评论 -
每天一道面试题(4) - 说一下js中的this
这道题在前端面试中出现的概率应该可以排在前几位了, 就算是入门前端都能回答上来一二, 但是回答的是否有逻辑有条理有深度呢?本文从以下几个问题进行讲述说一下js中的this说一下new做了什么事说一下apply,call方法做了什么事说一下箭头函数和普通函数的区别js中的this面试中遇到这个问题时, 最好不要想一点说一点, 要做出自己的总结js中的this主要是指在函数中this的指向问题如果函数是作为构造函数,使用new方法生成的对象, 那么这个构造函数中的this被绑定到了实例对原创 2021-09-12 20:31:38 · 156 阅读 · 0 评论 -
每天一道面试题(3) - 你知道JS的事件机制吗
要注意, JS的事件机制和JS的事件运行机制是两个不同的问题这个问题可以派生出如下几个问题你了解JS的事件机制吗?怎么阻止事件传播event.target 和event.currentTarget什么是事件委托?react中的事件委托你了解JS的事件机制吗?一个事件触发时, DOM2级事件规定分为捕获阶段 - 目标阶段 - 冒泡阶段三个阶段我们可以使用DOM0级的规范onclick等事件直接驱动事件, 也可以通过DOM2级规范中的addEventListener方法触发事件, 它可以原创 2021-09-10 22:59:42 · 176 阅读 · 0 评论 -
每天一道面试题(2) - 你真的了解JS的数据类型吗?
你了解JS的数据类型吗? 这应该是js中最基础的一个问题了, 可是就从这最基础的一个问题, 你能挖掘多深呢?本文将从以下几个方面进行梳理js的数据类型有哪些基本数据类型和引用数据类型的区别是什么判断数据类型的方法堆和栈的区别js的基本数据类型有哪些1.js基本数据类型有六种undefinedBooleanNumberStringBigInt(可以用任意精度表示整数, 安全的存储和操作大整数)Symbol2.null是一种特殊的数据类型, 在被typeof判断的时候会被判断原创 2021-09-09 23:19:59 · 90 阅读 · 4 评论 -
每天一道面试题(1) - javascript中的类数组和鸭式辩形
今天决定每天写一道面试题(偶尔懒了也可以不写, 不强迫自己), 对前端常见的面试题进行一些话术的总结和知识点整合吧正好今天听同事校招面试问到一个类数组, 那么就由此开始吧本文将从以下几个方面进行讲述什么是类数组, 和数组有什么区别为什么需要类数组 以及 常见的类数组有哪些类数组的遍历类数组转为数组什么是类数组类数组, 顾名思义, 不是数组, 长的像数组;其实类数组本质是一个对象, 只不过是具有如下两个特性的对象拥有length属性 和数字索引不具有普通数组的操作方法具有le原创 2021-09-08 21:00:56 · 162 阅读 · 0 评论