-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
前端 100 问:能搞懂80%的请把简历给我 #43
Comments
classifyName |
下次,下次一定 |
待我学会这些就去给你简历:) |
m |
你的来信我一收到 谢谢哈 ~~~~
|
存收到,谢谢!
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
引言
半年时间,几千人参与,精选大厂前端面试高频 100 题,这就是「壹题」。
在 2019 年 1 月 21 日这天,「壹题」项目正式开始,在这之后每个工作日都会出一道高频面试题,主要涵盖阿里、腾讯、头条、百度、网易等大公司和常见题型。得益于大家热情参与,现在每道题都有很多答案,提供的解题思路和答案也大大增长了我的见识,到现在已累积 100 道题目,『 8000+ 』Star 了,可以说你面试中遇到过的题目,在这里肯定能发现熟悉的身影。
后期计划除了持续更新「壹题」之外,还将整理非常详细的答案解析,提供完整的思考链路,帮助大家更好的理解题目,以及题目背后的知识,「我们的目标不是背题,而是通过题目查漏补缺,温故知新」。
更多更全更详细的每日一题和答案解析,戳这里查看
第 1 - 10 题
第 1 题:(滴滴、饿了么)写 React / Vue 项目时为什么要在列表组件中写 key,其作用是什么?
解析:第 1 题
第 2 题:
['1', '2', '3'].map(parseInt)
what & why ?解析:第 2 题
第 3 题:(挖财)什么是防抖和节流?有什么区别?如何实现?
解析:第 3 题
第 4 题:介绍下 Set、Map、WeakSet 和 WeakMap 的区别?
解析:第 4 题
第 5 题:介绍下深度优先遍历和广度优先遍历,如何实现?
解析:第 5 题
第 6 题:请分别用深度优先思想和广度优先思想实现一个拷贝函数?
解析:第 6 题
第 7 题:ES5/ES6 的继承除了写法以外还有什么区别?
解析:第 7 题
第 8 题:setTimeout、Promise、Async/Await 的区别
解析:第 8 题
第 9 题:(头条、微医)Async/Await 如何通过同步的方式实现异步
解析:第 9 题
第 10 题:(头条)异步笔试题
解析:第 10 题
第 11 - 20 题
第 11 题:(携程)算法手写题
解析:第 11 题
第 12 题:(滴滴、挖财、微医、海康)JS 异步解决方案的发展历程以及优缺点。
解析:第 12 题
第 13 题:(微医)Promise 构造函数是同步执行还是异步执行,那么 then 方法呢?
解析:第 13 题
第 14 题:(兑吧)情人节福利题,如何实现一个 new
解析:第 14 题
第 15 题:(网易)简单讲解一下http2的多路复用
解析:第 15 题
第 16 题:谈谈你对TCP三次握手和四次挥手的理解
解析:第 16 题
第 17 题:A、B 机器正常连接后,B 机器突然重启,问 A 此时处于 TCP 什么状态
解析:第 17 题
第 18 题:(微医)React 中 setState 什么时候是同步的,什么时候是异步的?
解析:第 18 题
第 19 题:React setState 笔试题,下面的代码输出什么?
解析:第 19 题
第 20 题:介绍下 npm 模块安装机制,为什么输入 npm install 就可以自动安装对应的模块?
解析:第 20 题
第 21 - 30 题
第 21 题:有以下 3 个判断数组的方法,请分别介绍它们之间的区别和优劣
解析:第 21 题
第 22 题:介绍下重绘和回流(Repaint & Reflow),以及如何进行优化
解析:第 22 题
第 23 题:介绍下观察者模式和订阅-发布模式的区别,各自适用于什么场景
解析:第 23 题
第 24 题:聊聊 Redux 和 Vuex 的设计思想
解析:第 24 题
第 25 题:说说浏览器和 Node 事件循环的区别
解析:第 25 题
第 26 题:介绍模块化发展历程
可从IIFE、AMD、CMD、CommonJS、UMD、webpack(require.ensure)、ES Module、
<script type="module">
这几个角度考虑。解析:第 26 题
第 27 题:全局作用域中,用 const 和 let 声明的变量不在 window 上,那到底在哪里?如何去获取?。
解析:第 27 题
第 28 题:cookie 和 token 都存放在 header 中,为什么不会劫持 token?
解析:第 28 题
第 29 题:聊聊 Vue 的双向数据绑定,Model 如何改变 View,View 又是如何改变 Model 的
解析:第 29 题
第 31 - 40 题
第 30 题:两个数组合并成一个数组
请把两个数组 ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2'] 和 ['A', 'B', 'C', 'D'],合并为 ['A1', 'A2', 'A', 'B1', 'B2', 'B', 'C1', 'C2', 'C', 'D1', 'D2', 'D']。
解析: 第 30 题
第 31 题:改造下面的代码,使之输出0 - 9,写出你能想到的所有解法。
解析:第 31 题
第 32 题:Virtual DOM 真的比操作原生 DOM 快吗?谈谈你的想法。
解析:第 32 题
第 33 题:下面的代码打印什么内容,为什么?
解析:第 33 题
第 34 题:简单改造下面的代码,使之分别打印 10 和 20。
解析:第 34 题
第 35 题:浏览器缓存读取规则
可以分成 Service Worker、Memory Cache、Disk Cache 和 Push Cache,那请求的时候 from memory cache 和 from disk cache 的依据是什么,哪些数据什么时候存放在 Memory Cache 和 Disk Cache中?
解析:第 35 题
第 36 题:使用迭代的方式实现 flatten 函数。
解析:第 36 题
第 37 题:为什么 Vuex 的 mutation 和 Redux 的 reducer 中不能做异步操作?
解析:第 37 题
第 38 题:(京东)下面代码中 a 在什么情况下会打印 1?
解析:第 38 题
第 39 题:介绍下 BFC 及其应用。
解析:第 39 题
第 40 题:在 Vue 中,子组件为何不可以修改父组件传递的 Prop
如果修改了,Vue 是如何监控到属性的修改并给出警告的。
解析:第 40 题
第 41 - 50 题
第 41 题:下面代码输出什么
解析:第 41题
第 42 题:实现一个 sleep 函数
比如 sleep(1000) 意味着等待1000毫秒,可从 Promise、Generator、Async/Await 等角度实现
解析:第 42 题
第 43 题:使用 sort() 对数组 [3, 15, 8, 29, 102, 22] 进行排序,输出结果
解析:第 43 题
第 44 题:介绍 HTTPS 握手过程
解析:第 44 题
第 45 题:HTTPS 握手过程中,客户端如何验证证书的合法性
解析:第 45 题
第 46 题:输出以下代码执行的结果并解释为什么
解析:第 46 题
第 47 题:双向绑定和 vuex 是否冲突
解析:第 47 题
第 48 题:call 和 apply 的区别是什么,哪个性能更好一些
解析:第 48 题
第 49 题:为什么通常在发送数据埋点请求的时候使用的是 1x1 像素的透明 gif 图片?
解析:第 49 题
第 50 题:(百度)实现 (5).add(3).minus(2) 功能。
解析:第 50 题
第 51 - 60 题
第 51 题:Vue 的响应式原理中 Object.defineProperty 有什么缺陷?
为什么在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty?
解析:第 51 题
第 52 题:怎么让一个 div 水平垂直居中
解析:第 52 题
第 53 题:输出以下代码的执行结果并解释为什么
解析:第 53 题
第 54 题:冒泡排序如何实现,时间复杂度是多少, 还可以如何改进?
解析:第 54 题
第 55 题:某公司 1 到 12 月份的销售额存在一个对象里面
如下:{1:222, 2:123, 5:888},请把数据处理为如下结构:[222, 123, null, null, 888, null, null, null, null, null, null, null]。
解析:第 55 题
第 56 题:要求设计 LazyMan 类,实现以下功能。
解析:第 56 题
第 57 题:分析比较 opacity: 0、visibility: hidden、display: none 优劣和适用场景。
解析:第 57 题
第 58 题:箭头函数与普通函数(function)的区别是什么?构造函数(function)可以使用 new 生成实例,那么箭头函数可以吗?为什么?
解析:第 58 题
第 59 题:给定两个数组,写一个方法来计算它们的交集。
解析:第 59 题
第 60 题:已知如下代码,如何修改才能让图片宽度为 300px ?注意下面代码不可修改。
解析:第 60 题
第 61 - 70 题
第 61 题:介绍下如何实现 token 加密
解析:第 61 题
第 62 题:redux 为什么要把 reducer 设计成纯函数
解析:第 62 题
第 63 题:如何设计实现无缝轮播
解析:第 63 题
第 64 题:模拟实现一个 Promise.finally
解析:第 64 题
第 65 题:
a.b.c.d
和a['b']['c']['d']
,哪个性能更高?解析:第 65 题
第 66 题:ES6 代码转成 ES5 代码的实现思路是什么
解析:第 66 题
第 67 题:数组编程题
随机生成一个长度为 10 的整数类型的数组,例如
[2, 10, 3, 4, 5, 11, 10, 11, 20]
,将其排列成一个新数组,要求新数组形式如下,例如[[2, 3, 4, 5], [10, 11], [20]]
。解析:第 67 题
第 68 题: 如何解决移动端 Retina 屏 1px 像素问题
解析:第 68 题
第 69 题: 如何把一个字符串的大小写取反(大写变小写小写变大写),例如 ’AbC' 变成 'aBc' 。
解析:第 69 题
第 70 题: 介绍下 webpack 热更新原理,是如何做到在不刷新浏览器的前提下更新页面的
解析:第 70 题
第 71 - 80 题
第 71 题: 实现一个字符串匹配算法,从长度为 n 的字符串 S 中,查找是否存在字符串 T,T 的长度是 m,若存在返回所在位置。
解析:第 71 题
第 72 题: 为什么普通
for
循环的性能远远高于forEach
的性能,请解释其中的原因。解析:第 72 题
第 73 题: 介绍下 BFC、IFC、GFC 和 FFC
解析:第 73 题
第 74 题: 使用 JavaScript Proxy 实现简单的数据绑定
解析:第 74 题
第 75 题:数组里面有10万个数据,取第一个元素和第10万个元素的时间相差多少
解析:第 75 题
第 76 题:输出以下代码运行结果
解析:第 76 题
第 77 题:算法题「旋转数组」
示例 1:
示例 2:
解析:第 77 题
第 78 题:Vue 的父组件和子组件生命周期钩子执行顺序是什么
解析:第 78 题
第 79 题:input 搜索如何防抖,如何处理中文输入
解析:第 79 题
第 80 题:介绍下 Promise.all 使用、原理实现及错误处理
解析:第 80 题
第 81 - 90 题
第 81 题:打印出 1 - 10000 之间的所有对称数
解析:第 81 题
第 82 题:周一算法题之「移动零」
解析:第 82 题
第 83 题:var、let 和 const 区别的实现原理是什么
解析:第 83 题
第 84 题:请实现一个 add 函数,满足以下功能。
解析:第 84 题
第 85 题:react-router 里的
<Link>
标签和<a>
标签有什么区别解析:第 85 题
第 86 题:(京东、快手)周一算法题之「两数之和」
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
解析:第 86 题
第 87 题:在输入框中如何判断输入的是一个正确的网址。
解析:第 87 题
第 88 题:实现 convert 方法,把原始 list 转换成树形结构,要求尽可能降低时间复杂度
以下数据结构中,id 代表部门编号,name 是部门名称,parentId 是父部门编号,为 0 代表一级部门,现在要求实现一个 convert 方法,把原始 list 转换成树形结构,parentId 为多少就挂载在该 id 的属性 children 数组下,结构如下:
解析:第 88 题
第 89 题:设计并实现 Promise.race()
解析:第 89 题
第 90 题:实现模糊搜索结果的关键词高亮显示
解析:第 90 题
第 91 - 100 题
第 91 题:介绍下 HTTPS 中间人攻击
解析:第 91 题
第 92 题:已知数据格式,实现一个函数 fn 找出链条中所有的父级 id
解析:第 92 题
第 93 题:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log(m+n))。
示例 1:
中位数是 2.0
示例 2:
中位数是(2 + 3) / 2 = 2.5
解析:第 93 题
第 94 题:vue 在 v-for 时给每项元素绑定事件需要用事件代理吗?为什么?
解析:第 94 题
第 95 题:模拟实现一个深拷贝,并考虑对象相互引用以及 Symbol 拷贝的情况
解析:第 95 题
第 96 题:介绍下前端加密的常见场景和方法
解析:第 96 题
第 97 题:React 和 Vue 的 diff 时间复杂度从 O(n^3) 优化到 O(n) ,那么 O(n^3) 和 O(n) 是如何计算出来的?
解析:第 97 题
第 98 题:(京东)写出如下代码的打印结果
解析:第 98 题
第 99 题:(bilibili)编程算法题
解析:第 99 题
第 100 题:(京东)请写出如下代码的打印结果
解析:第 100 题
❤️ 看完三件事
如果你觉得这篇内容对你挺有启发,我想邀请你帮我三个小忙:
The text was updated successfully, but these errors were encountered: