前端大佬推荐:261页前端面试题宝典,巩固复习


前言:

马上就要过完年了,又要开始面试找工作了。面试少不了面试题的复习,今天分享的这份宝典由字节大佬推荐,261页的前端面试题宝典,帮助你复习巩固。 主要内容包括CSS,JavaScript,HTTP,TCP协议,浏览器,数据结构和算法

CSS篇

  • 让一个元素水平垂直居中,到底有多少种方案? 浮动布局的优点,缺点?清除浮动的方式? 使用display:inline-block会产生的问题?解决方法? 布局题:div垂直居中,左右10px,高度始终为宽度一半 CSS如何进行布局 什么是BFC? 触发条件 BFC渲染规则 应用场景 …

JavaScript篇

  • JS原始数据类型有哪些?引用数据类型有哪些? null是对象吗?为什么? ‘1’.toString()为什么可以调用? 0.1+0.2为什么不等于0.3? 什么是BigInt? 为什么需要BigInt? 如何创建并使用BigInt? typeof 是否能正确判断类型? instanceof能否判断基本数据类型? 能不能手动实现一下instanceof的功能? Object.is和===的区别? [] == ![]结果是什么?为什么? JS中类型转换有哪几种? == 和 ===有什么区别? 对象转原始类型是根据什么流程运行的? 对闭包的理解 原型对象和构造函数有何关系? 能不能描述一下原型链? JS如何实现继承? 函数的arguments为什么不是数组?如何转化成数组? forEach中return有效果吗?如何中断forEach循环? JS判断数组中是否包含某个值 JS中flat—数组扁平化 数组中的高阶函数 实现数组map方法 ? 实现数组reduce方法 ? 实现数组 push、pop 方法 ? 实现数组filter方法 ? 实现数组splice方法 ? 实现数组splice方法 ? 实现数组sort方法? 模拟实现一个new的效果? 模拟实现一个 bind 的效果? 实现一个 call/apply 函数? 谈谈你对JS中this的理解 JS中浅拷贝的手段有哪些? 写一个完整的深拷贝

进阶

  • 数据是如何存储的? V8 引擎如何进行垃圾内存的回收? 描述一下 V8 执行一段JS代码的过程? 宏任务(MacroTask)引入 微任务(MicroTask)引入 理解EventLoop nodejs 和 浏览器关于eventLoop的主要区别 关于process.nextTick的一点说明 nodejs中的异步、非阻塞I/O是如何实现的? JS异步编程有哪些方案?为什么会出现这些方案? 简单实现一下 node 中回调函数的机制? Promise 凭借什么消灭了回调地狱? 为什么Promise要引入微任务? Promise 如何实现链式调用? 实现Promise的 resolve、reject 和 finally 实现Promise的 all 和 race 谈谈你对生成器以及协程的理解 如何让 Generator 的异步代码按顺序执行完毕? 解释一下async/await的运行机制。 forEach 中用 await 会产生什么问题?怎么解决这个问题? 关于JS中一些重要的api实现

计算机网络篇

HTTP

  • HTTP 报文结构是怎样的? HTTP有哪些请求方法? GET 和 POST 有什么区别? 如何理解 URI? 如何理解 HTTP 状态码? 简要概括一下 HTTP 的特点和缺点? 对 Accept 系列字段了解多少? 对于定长和不定长的数据,HTTP 是怎么传输的? HTTP 如何处理大文件的传输? HTTP 中如何处理表单数据的提交? HTTP1.1 如何解决 HTTP 的队头阻塞问题? 对 Cookie 了解多少? 如何理解 HTTP 缓存及缓存代理? 为什么产生代理缓存? 源服务器的缓存控制 客户端的缓存控制 什么是跨域?浏览器如何拦截响应?如何解决? TLS1.2 握手的过程是怎样的? 传统 RSA 握手 RSA 和 ECDHE 握手过程的区别 TLS 1.3 做了哪些改进? HTTP/2 有哪些改进? HTTP/2 中的二进制帧是如何设计的?

TCP协议

  • TCP 和 UDP 的区别? TCP 三次握手的过程? 为什么是三次而不是两次、四次? 三次握手过程中可以携带数据么? 说说 TCP 四次挥手的过程 为什么是四次挥手而不是三次? 半连接队列和 SYN Flood 攻击的关系 如何应对 SYN Flood 攻击? 介绍一下 TCP 报文头部的字段 TCP 快速打开的原理(TFO) 说说TCP报文中时间戳的作用? TCP 的超时重传时间是如何计算的? TCP 的流量控制 TCP 的拥塞控制 说说 Nagle 算法和延迟确认? 如何理解 TCP 的 keep-alive?

浏览器篇

  • 浏览器缓存? 说一说浏览器的本地存储?各自优劣如何? 说一说从输入URL到页面呈现发生了什么? 谈谈你对重绘和回流的理解 XSS攻击 CSRF攻击 HTTPS为什么让数据传输更安全? 实现事件的防抖和节流? 实现图片懒加载?

数据结构和算法

链表

  • 简单的反转链表 区间反转 两个一组翻转链表 K个一组翻转链表 如何检测链表形成环? 如何找到环的起点 合并两个有序链表 合并 K 个有序链表 判断回文链表

栈和队列

  • 有效括号 多维数组 flatten 普通的层次遍历 二叉树的锯齿形层次遍历 二叉树的右视图 完全平方数 单词接龙 优先队列 关于堆的说明 实现一个最大堆 实现优先队列 前 K 个高频元素 合并 K 个排序链表 什么是双端队列? 滑动窗口最大值 栈实现队列 队列实现栈

二叉树

  • 遍历 给定一个二叉树,找出其最大深度 给定一个二叉树,找出其最小深度 对称二叉树 二叉树的最近公共祖先 二叉搜索树的最近公共祖先 二叉树的直径 二叉树的所有路径 二叉树的最大路径和 将有序数组转换为二叉搜索树 二叉树展开为链表 不同的二叉搜索树II

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/290739.html

(0)
上一篇 2022年10月7日
下一篇 2022年10月7日

相关推荐

发表回复

登录后才能评论