大厂前端面试题总结(百度、字节跳动、腾讯、小米.....),附上热乎面试经验!

先简单介绍下自己,我“平平无奇小天才”一枚,毕业于南方普通985普通学生,有幸去百度、字节面试,感觉大公司就是不一样,印象最深的是字节,所以有必要总结一下面试经验,以及面试中遇到的一些问题,以便大家参考:

本文目录

  • 投简历的过程
  • 面试前做出的准备
  • 快要面试时做出的准备
  • 面试前奏,其实很紧张
  • 面试题目
  • 大厂面试特点
  • 面试总结
  • 最后

投简历的过程

首先肯定是找一个简洁不浮夸却有很精美的简历模板,然后将自己的信息填上去,主要的就是:姓名、电话、照片、擅长的技术栈、教育经历、实习经历、项目经历、证书、社交网站。这里要强调的是:不太熟悉的东西别往上写,没用的东西别往上写。

然后就是投简历的渠道问题了,这里我要给个建议,最好找别人内推一下,因为这样更快让你的简历被看到,避免长时间没有音讯。不过要提的是,找的内推人一定要靠谱!一定要靠谱!要找那种能给你一些简历修改建议的,会帮你跟进后续流程的,部门hc真的充足的人,而不是找那种广撒网的,因为他们根本没时间管你,可能你投进去,反而卡了流程(真的感同身受)

面试前做出的准备

我在面试前准备以下几点东西,似乎都解决了面试的部分问题

面试前我查阅了其他大佬写的字节跳动的面经以及面试题目,寻找题目解答,把它们总结了下来,用了一天一夜的时间,把它们整理成了文档。

我做了一份详细的自我介绍,通过项目开发经历来总结出了我的一些优点和开发经验,用讲故事的形式说明情况,最后点明故事中表现了自己具有哪些素质,点明自己为什么可以做前端的工作。字节跳动的宗旨“和优秀的人一起做有挑战的事情”也被我用到了自我介绍中,“我认为我是优秀的人,也喜欢做有挑战的事情,更喜欢与优秀的人为伍”“我希望搭上字节跳动这架火箭”等等。

快要面试时做出的准备

快要面试了,第一次面试,有些紧张,但还是像平常考试一样,将总结下来的面试题目总结、前端遇到问题的总结又看了一遍,把自己做好的自我介绍熟悉的过几遍,给自己亲近的朋友发条消息获得她的祝福,又站在电脑桌前活动了一下身子,头脑顿时清醒利索了许多。

面试前奏,其实很紧张

由于紧张怕错过面试,早早的便坐在了电脑桌前。面试官迟到了一会,就给我发起了面试视频邀请,终于开始了。

迎面是一个挺帅气的哥哥,简单的打了一下招呼,就进入了自我介绍的环节。由于自我介绍我已经熟悉过几遍了,自我介绍的效果看起来效果还是不错的。

开始问我项目经历的细节以及自我介绍中的细节,由于项目经历确实是自己亲身经历过的事情,并且我一般项目完成时都会做一下总结,所以也能够答个头头是道。个人感觉是这样的,至于面试官怎么想的,我就不清楚了, 说不定是那种我就静静的看着你装逼的情况。

由于篇幅限制,下方面试题目仅展示了部分, 有需要的朋友可以 戳此传送门即可获取完整版的 PDF 哦

面试题目

来了来了,开始问技术的问题了。

1.你对Vue的理解有多少

因为我在简历的项目经历中写了一个Vue项目,于是他问的时候就把我在项目中对Vue的理解和面试前准备的Vue总结结合起来回答。

  • 用css2和css3分别写一下垂直居中和水平居中

这道题我不会,并不知道css2和css3有什么区别以及写法,只会css3,我脑袋里有面试前总结的垂直居中和水平居中其中的两种方式,我就给他讲了一讲,倒是他没有再问下去,可能看出来我不会了吧。这也体现出了面试前知识点总结复习的重要性,不然你不会的东西你连说都不会说。

2.使用Float进行布局容易产生什么问题?解决方式呢?

  • 子元素在设置 float 后会脱离文档流,造成父元素高度塌陷

解决方式:

父元素设置高度

清除浮动

<div class="outter">
	<div class="inner"></div>
	<div style="clear: both;"></div>
</div>

// test.css
.outter { width:200px; background:#3FF; border:1px solid #000;}
.inner { float:left; width:120px; height:80px; background:#FF3; }

3.你对计算机网络的认识怎么样

又是一道探底的题,判断能否从这里给你出题考察你

4.讲述一下计算机网络的七层

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

5.HTTPS是什么

HTTPS即加密的HTTP,HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间

6.介绍几种常见的状态码

2XX系列:代表请求已成功被服务器接收、理解、并接受。

200状态码:表示请求已成功,请求所希望的响应头或数据体将随此响应返回

201状态码:表示请求成功并且服务器创建了新的资源,且其 URI 已经随Location 头信息返回。

3XX系列:代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。

301状态码:被请求的资源已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

302状态码:请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求。

304状态码:自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。

4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。

401状态码:请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

403状态码:服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。

404状态码:请求失败,请求所希望得到的资源未被在服务器上发现。

5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

500状态码:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。

503状态码:由于临时的服务器维护或者过载,服务器当前无法处理请求。

7.闭包是什么

闭包就是能够读取其他函数内部变量的函数。

闭包的用途:可以读取函数内部的变量,并且让这些变量的值始终保持在内存中。

// 输出全为10
for(var i=0;i<10;i++){
   setTimeout(function(){
       console.log(i);
   },50);
}
// 输出相应的输出
for(var i=0;i<10;i++){
    (function(i){
        setTimeout(function(){
        console.log(i);
        },50);
    })(i);
}

8.NaN是什么,用typeof会输出什么

Not a Number
会输出 Number

9.谈谈你对webpack的理解

是一个对资源进行模块化和打包的工具,处理每个模块的 import 和 export

追问:资源是指什么?

回答:Js,css,png图片等

追问:如果有个二进制文件,它是资源么?webpack怎么使它模块化?

回答:是。需要有一个对应的loader来处理(我是想到了vue-loader等)

10.说一下深拷贝和浅拷贝及常用实现方式

  • 浅拷贝: 以赋值的形式拷贝引用对象,仍指向同一个地址,修改时原对象也会受到影响

赋值表达式 =Object.assign展开运算符(…)

  • 深拷贝: 完全拷贝一个新对象,修改时原对象不再受到任何影响

JSON.parse(JSON.stringify(obj))

递归进行逐一赋值

11.使用JSON自带函数进行深拷贝有什么问题

  • 具有循环引用的对象时,报错
  • 当值为函数或 undefined 时,无法拷贝

12.跨域问题如何解决

同源策略:浏览器安全策略,同协议、ip、端口的脚本才会执行。

只要协议、域名、端口有任何一个不同,都被当作是不同的域

js跨域是指通过js在不同的域之间进行数据传输或通信通过jsonp跨域

(1) jsonp在页面上引入不同域上的js脚本文件实现请求不同域上的数据

(2)通过script标签引入一个js文件

(3) js文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入

注:需要服务器端的页面进行相应的配合

(4) 通过修改document.domain来跨子域

(5) 使用window.name来进行跨域

(6) window对象有个name属性,该属性有个特征:即在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。

13.知道babel么

可以实现将ES6编译为ES5代码

14.用js实现判断一个变量是否为整数的函数

实现思路:先判断该变量是否为Number类型,以此来缩小范围,再判断该变量除以1后是否与原值全等,若全等则返回true,若不全等则返回false

15.进程和线程是什么

线程是最小的执行单元,而进程由至少一个线程组成。如何调度进程和线程,完全由操作系统决定,程序自己不能决定什么时候执行,执行多长时间。

进程指计算机中已运行的程序。

线程指操作系统能够进行运算调度的最小单位。

16.死锁是什么

当两个以上的运算单元,双方都在等待对方停止运行,以获取系统资源,但是没有一方提前退出时,就称为死锁。

17.Left Join、Right Join、Inner Join 指的是什么

LEFT JOIN 关键字会从左表那里返回所有的行,即使在右表中没有匹配的行

RIGHT JOIN 关键字会右表那里返回所有的行,即使在左表中没有匹配的行

在表中存在至少一个匹配时,INNER JOIN 关键字返回行

18.快速排序用js怎么写

function quickSort(arr) {
  if(arr.length<=1) {
  	return arr;
  }
  var s = Math.floor(arr.length/2);
 
  var temp = arr.splice(s,1);
  
  var left=[];
  var right=[];
  for(var i=0;i<arr.length;i++) {
    if(arr[i]<temp) {
      left.push(arr[i]);
    }
    if(arr[i]>=temp) {
      right.push(arr[i]);
    }
  }
  return quickSort(left).concat(temp,quickSort(right));  
}

19.玩过哪些游戏?

玩过LOL,但更喜欢炉石之类的纸牌策略类游戏。

追问:炉石你觉得用什么协议来通信?

回答:UDP吧。

20.未来三年的职业规划?

第一年学习,第二年负责小部分,第三年独当一面,后来发现面试官问的不是这个,说我说的太笼统,是想问我想做什么方向....(蜜汁尴尬)

大厂面试特点

百度

百度的技术面总共有4轮,基础面(同级别员工)+基础面(级别应该比你要一点)+leader面(整个研发部门的技术负责人)+boss面(整个研发部门的总负责人)

百度一面是需要你当场完成一套笔试题,难度的话也一般,基本上面的知识点你都过一遍问题不大,也有一题算法题,是百度的原创题目,但是题型是一样的,问题也不大。前两面都是前端开发面的,没啥难度,涉及到的知识点不局限于前端吧,还包括网络以及开发模式等等问题。

leader面还挺有意思的,当时他们强烈要求我到现场去参与面试,leader 是一个很年轻的小伙,因为不是专职前端,所以问的问题涉及到了整个计算机的所有知识点:数据结构、算法(原创题,一个很简单的递归)、操作系统,以及问你除了 js 以外还掌握什么语言等等,整个过程非常轻松,也非常愉快,大家都有说有笑。

boss 面气氛就比较严肃了,也可能是因为那个会议室空调有点冷的原因。基本上整个面试都是在让我吹水,讲自己的项目经历,以及解决的办法,答题模版也基本可以按照上面的来说,最后也通过了。

字节跳动

字节跳动的问题问的非常细,在我参与的两轮面试中,都是在问一些非常基础的知识,面试的过程也不会很长,大概 45 分钟左右。

一面的时候再做了一番自我介绍之后,给了 5 道笔试题,做完之后再聊一聊别的就过了。

二面的时候简单介绍了一下自己做过的项目,然后主要是围绕着你做的项目中用到的技术进行讨论。他给了我一道场景题,然后让我按照场景中的内容进行实现,最后给了一道应该是原创的算法题。

其实面字节之前我是非常紧张的,我个人对能通过字节的面试一点也不抱希望,但是面完之后,觉得很多时候大家都神话了字节的面试,难度也没有想象中的高。

不过有一说一,我觉得面试我的两位面试官态度都非常好,有一些我答不出来的问题,也会给我提示给我鼓励。

面试总结

1.明确自己的技术方向,然后深入研究。原以为在技术领域多处开花是一件很酷很厉害的事,现在发现这很容易导致我成为一名api使用者。一定要熟记基础,深入原理,了解源码。

2.一定要有技术博客,本次面试过程中能答上的知识点全是平时博客有记录的知识。

3.请务必在每一次面试结束后记录下面试过程中,你不会或者没回答好的问题。因为这些问题很可能你在下次面试过程中会被问到。

4.针对自己做过的项目,要有意识地进行分析总结,面试过程中就可以把总结的这些问题抛出来,总有一两个会被面试官作为考核点。

5.如果你是面试前填期望薪资,你就按着自己的期望填,比如你的期望是12k,那你就填13-15k,后面hr如果套路你说你的期望给不了,你就说12k,那你的薪资就是12k了。如果技术面后谈薪资,那可以看面试发挥情况填,如果发挥超水平,期望范围+2-3k,如果低于水平,那你可能需要保持期望或者再降一点。

6.关于笔试&面试,个人非常推荐刷足够多的笔试题和面经,就像高考前的模拟题一样有效!

最后

此文纯个人想法,希望读者保持自己的判断。

我这边分享一份自己整理的前端核心知识点、面试专题和2021最新面试题资料『面试经典算法题』、字节跳动、阿里、腾讯、头条等大厂面试真题合集,帮助大家搞定大厂面试的必考点、高频点、加薪点。

有需要的朋友可以戳此传送门即可获取完整版的 PDF 哦

如果觉得不错,素质三连点赞、收藏、评论"666"都是对博主莫大的支持,谢谢各位大佬啦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/276556.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT应用篇 三、QML自定义显示SpinBox的加减按键图片及显示值效果

QT应用篇 一、QT上位机串口编程 二、QML用Image组件实现Progress Bar 的效果 三、QML自定义显示SpinBox的加减按键图片及显示值效果 文章目录 QT应用篇前言一、qml需求二、使用组件1.SpinBox组件2.SpinBox中QML的使用 总结 前言 记录自己学习QML的一些小技巧方便日后查找 QT的…

unity学习笔记----游戏练习02

一、阳光值的展示和消耗 1.创建一个文本组件用于显示阳光的数值&#xff0c;然后在脚本中得到这个UI。 在SunManger中得到这个组件的引用 public TextMeshProUGUI sunPointText; 写一个用于更新显示的方法 public void UpdataSunPointText() { sunPointText.tex…

多模态大模型-CogVLm 论文阅读笔记

多模态大模型-CogVLm 论文阅读笔记 COGVLM: VISUAL EXPERT FOR LARGE LANGUAGEMODELS 论文地址 :https://arxiv.org/pdf/2311.03079.pdfcode地址 : https://github.com/THUDM/CogVLM时间 : 2023-11机构 : zhipuai,tsinghua关键词: visual language model效果:&#xff08;2023…

小型企业成为网络犯罪分子获取数据的目标

在过去十年的大部分时间里&#xff0c;网络犯罪的巨额资金来自针对大型组织的勒索软件攻击。这种威胁仍然存在。但犯罪分子可能会将注意力转向中小企业 (SMB)。这对消费者的影响将是巨大的。 将软件即服务 (SaaS) 技术用于核心业务功能继续将中小企业整合到全球供应链中。由于…

鸿蒙APP的代码规范

鸿蒙APP的代码规范是为了确保代码质量、可读性和可维护性而定义的一系列规则和标准。以下是一些建议的鸿蒙APP代码规范&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 代码风格&#xff1a; 采用…

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(4)-自制数据集及训练(使用makesense标注数据集)

如何制作和训练自己的数据集 看yolov5官网创建数据集1.搜索需要的图片2.创建标签标注数据集地址&#xff1a;放入图片后选择目标检测创建文档&#xff0c;每个标签写在单独的一行上传结果此处可以编辑类别把车框选选择类别即可导出数据 3.新建一个目录放数据写yaml文件 4. 测试…

安装Node修改Node镜像地址搭建Vue脚手架创建Vue项目

1、安装VSCode和Node 下载VSCode Visual Studio Code - Code Editing. Redefined 下载Node Node.js (nodejs.org) 检验是否安装成功&#xff0c;WinR,输入cmd命令&#xff0c;使用node -v可以查看到其版本号 2、修改镜像地址 安装好node之后&#xff0c;开始修改镜像地址 …

【Unity动画系统】Unity动画系统Animation详解,参数细节你是否弄清?

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

蓝牙物联网智能安防系统设计方案

1概述 安防系统(安全防护)的作用是预防损失&#xff0c;是人们保障人身和财产安全最重要的工具之一。近年来&#xff0c;伴随经济的飞速发展和城市人口的急剧增加&#xff0c;盗窃、入室抢劫等事件的增多给人们的安定生活带来了很大的影响&#xff0c;同时&#xff0c;交通的快…

Grafana Loki 组件介绍

Loki 日志系统由以下3个部分组成&#xff1a; Loki是主服务器&#xff0c;负责存储日志和处理查询。Promtail是专为loki定制的代理&#xff0c;负责收集日志并将其发送给 loki 。Grafana用于 UI展示。 Distributor Distributor 是客户端连接的组件&#xff0c;用于收集日志…

无监督学习(上)

我们实际用到的项目大都是有监督的&#xff0c;而人工智能未来的一大难点将会是无监督学习。在前面说过的降维算法&#xff0c;大部分都是无监督&#xff0c;除了LDA。 无监督算法有聚类&#xff0c;密度估计&#xff0c;常常用在做分类或者异常检测上。 一.聚类 聚类就是识…

聚焦亚马逊云科技 re:Invent re:Cap专场,重构生成式AI的无限可能!

摘要&#xff1a;12月14日至17日&#xff0c;第十二届全球软件案例研究峰会(简称TOP100summit)在北京国际会议中心成功举办&#xff0c;亚马逊云科技资深开发者布道师郑予彬、亚马逊云科技解决方案研发中心应用科学家肖宇、可以科技产品负责人曹临杰、亚马逊云科技解决方案架构…

【算法刷题】Day25

文章目录 1. 粉刷房子题干&#xff1a;算法原理&#xff1a;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码&#xff1a; 2. 判定字符是否唯一题干&#xff1a;算法原理&#xff1a;1. 哈希表2. 位图思想 代码&#xff1a; 3. 丢失的数字题干&…

初步认识API安全

一、认识API 1. 什么是API API(应用程序接口)&#xff1a;是一种软件中介&#xff0c;它允许两个不相关的应用程序相互通信。它就像一座桥梁&#xff0c;从一个程序接收请求或消息&#xff0c;然后将其传递给另一个程序&#xff0c;翻译消息并根据 API 的程序设计执行协议。A…

OpenCV-Python(21):OpenCV中的轮廓性质

3.轮廓的性质 本文我们将主要学习基于轮廓来提取一些经常使用的对象特征。 3.1 长宽比 边界矩形的宽高比&#xff1a; x,y,w,h cv2.boundingRect(cnt) aspect_ratio float(w)/h 3.2 Extent 轮廓面积与边界矩形面积的比。 area cv2.contourArea(cnt) x,y,w,h cv2.bounding…

Android 13 - Media框架(28)- MediaCodec(三)

上一节我们了解到 ACodec 执行完 start 流程后&#xff0c;会把所有的 input buffer 都提交给 MediaCodec 层&#xff0c;MediaCodec 是如何处理传上来的 buffer 呢&#xff1f;这一节我们就来了解一下这部分内容。 1、ACodecBufferChannel::fillThisBuffer ACodec 通过调用 A…

垃圾收集器与内存分配策略

内存分配和回收原则 对象优先在Eden区分配 大对象直接进入老年代 长期存活的对象进入老年代 什么是内存泄漏 不再使用的对象在系统中未被回收&#xff0c;内存泄漏的积累可能会导致内存溢出 自动垃圾回收与手动垃圾回收 自动垃圾回收&#xff1a;由虚拟机来自动回收对象…

音频修复和增强软件:iZotope RX 10 (Win/Mac)中文汉化版

iZotope RX 是一款专业的音频修复和增强软件&#xff0c;一直是电影和电视节目中使用的行业标准音频修复工具&#xff0c;iZotope能够帮助用户对音频进行制作、后期合成处理、混音以及对损坏的音频进行修复&#xff0c;再解锁更多功能之后还能够对电影、游戏、电视之中的音频进…

超详细YOLOv8目标检测全程概述:环境、训练、验证与预测详解

目录 yolov8导航 YOLOv8&#xff08;附带各种任务详细说明链接&#xff09; 搭建环境说明 不同版本模型性能对比 不同版本对比 模型参数解释 不同版本说明 训练 训练示意代码 训练用数据集与 .yaml 配置方法 .yaml配置 数据说明 数据集路径 训练参数说明 训练过程…

Unreal Engine游戏引擎的优势

在现在这个繁荣的游戏开发行业中&#xff0c;选择合适的游戏引擎是非常重要的。其中&#xff0c;Unreal Engine作为一款功能强大的游戏引擎&#xff0c;在业界广受赞誉。那Unreal Engine游戏引擎究竟有哪些优势&#xff0c;带大家简单的了解一下。 图形渲染技术 Unreal Engin…
最新文章