字节校招面试题分享,别人已经开始面试了,你不会还没有准备吧?
字节面试题分享,理解校招,还有前台校招面试题分享,不容错过。
字节跳动(校招)
一面:
- TCP、UDP是什么,区别,应用
- 什么是字节流,什么是数据报
- TCP为啥可靠
- 超时重传、累计确认的过程
- HTTP跟TCP的联络
- http通信过程
- http头部字段,平常在项目中有应用过吗,具体说一说
- Cookie、localStorage、sessionStorage用过吗?说一说他们的联络区别与应用
- 每次请求都会带cookie吗?什么时候会带
- cookie维持登录态是怎样做到的
- 你用cookie干过什么
- cookie保存在哪里
- 客户刷新界面后,服务端如何判断这个客户还在登录状态
- XSS与CSRF理解多少,原理,如何预防
- 算法:输入两个数字x,y;输出一个只包含字母a和字母b的随机字符串
要求:字符串中必需有x个a,y个b ;输出的字符串中不能出现aaa和bbb
二面:
- 由一个class引申出的众多问题
- 面试官给出了一个class定义的类,提问:找出其中错误的地方,为什么错了,改正
- 说一下new出的对象有哪些实例属性和方法以及原型属性和方法
- 说说console.log(window.B)输出什么(B是题中定义的class)
- 假如class中返回了一个1,会对new出的对象产生影响吗,为什么,什么时候会产生影响
- 如何在实例化一个对象时传参,考虑已知参数数量和未知两种情况(考察es6的扩展运算符···)
- for…of理解吗,哪些数据结构能用,假如我想用它遍历对象属性,怎样实现(
- LCA:寻觅多叉树的最近的公共祖先节点
- 导出一个模块:要求该模块用localStorage实现cookie的过期功能
- 用for实现reduce
- 做过哪些项目,最大的收获是什么
- 接触前台多久了
- 详情一下vue
- 说一下双向绑定原理
- v-if和v-show的区别
- 虚拟DOM,vue-router
- echarts用过哪些,他的实现有没有理解过
- DOM和BOM详情一下,他们的联络是什么
- 问输出:
let obj = {name: "bytedance",fun: function(){console.log(this.name);}}let a = obj.fun;a(); // undefinedobj.fun(); // "bytedance"
- 有没有用过fetch,get、post和put的区别
- 跨域的方法(越多越好)
- chrome调试工具都用过哪些功能
- CSS实现两栏布局,左边固定宽度,右边自适应
- 算法字符串解码
理解校招
知己知彼才能百战百胜,在准备校招之前,我们先要理解校招。
什么是校招?
校招,全称校园招聘,指企业招聘那些即将毕业的学生。校招主要分为三个部分:简历挑选,笔试,面试。
比照社招,以应届生身份参与校招有以下几个优势:
- 校招更注重基础,应届毕业生普遍缺少工作经验,但基础知识掌握较好、学习能力强。
- 校招hc多,多达几千,少则几百,公司会分岗位分地区预留固定数量hc,相比社招机会多多。
校招时间规划:
- 春招:年初陆续开始, 经历过秋招失败之后,别松懈,总结秋招经验,关注春招动态。
- 暑期实习:大三或者研二下学期的3月初开始,6~8月为实习时间。
- 秋招:7月初提前批开始,10月底随着各学校三方下发陆续结束。
调整心态,面对春招
以积极的心态去面对校招
校招并不可怕,它为我们这些即将踏入社会的年轻人们提供了更多的机会。
要自信
在校招面试时,我们通常会不自觉地认为自己很差,甚至不敢正当地提出自己的诉求。校招是一个双向选择过程,不仅公司有选择权,我们同样有选择权;另一方面,当你用充满自信的语气去答复面试官时,对方会更愿意相信你已经做好了充分的就职准备
学会搜集信息
无论是简历投递,还是在面试的过程中,掌握岗位的最新信息,多与同岗位的小伙伴们交流。从基础和实战经验两方面准备校招
复习巩固基础知识,通过项目累积经验。
学习路线
篇幅有限,需要面试题资料(包括面试题答案)可以点击这里,免费获取所有面试题资料,学习路线图。
HTML基础
HTML是页面中内容的载体,可以展现开发者想要客户浏览的任何文字、图片、音频信息。对于HTML的各类标签,不仅要掌握日常开发中经常碰到的,也要慢慢积累那些不常用标签,块级、行内元素的定义以及二者相互转换几乎是每场技术一面常考问题。
- 浏览器页面有哪三层构成,分别是什么,作用是什么?
- HTML5的优点与缺点?
- Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
- HTML5有哪些新特性、移除了哪些元素?
- 你做的网页在哪些浏览器测试过,这些浏览器的内核分别是什么?
- 每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?
- 说说你对HTML5认识?(是什么,为什么)
- 对WEB标准以及W3C的了解与认识?
- HTML5行内元素有哪些,块级元素有哪些, 空元素有哪些?
- 什么是WebGL,它有什么优点?
- 请你形容一下 cookies,sessionStorage 和 localStorage 的区别?
- 说说你对HTML语义化的了解?
- link和@import的区别?
- 说说你对SVG了解?
- HTML全局属性(global attribute)有哪些?
- 说说超链接target属性的取值和作用?
- data-属性的作用是什么?
- 详情一下你对浏览器内核的了解?
- 常见的浏览器内核有哪些?
- iframe有那些缺点?
- Label的作用是什么,是怎样用的?
- 如何实现浏览器内多个标签页之间的通信?
- 如何在页面上实现一个圆形的可点击区域?
- title与h3的区别、b与strong的区别、i与em的区别?
- 实现不使用 border 画出1px高的线,在不同浏览器的标准模式与怪异模式下都能保持一致的效果?
CSS基础
在校招准备时,掌握CSS各类常用的属性是必要的,其中浮动、清理浮动以及定位更是必考点。CSS盒模型,CSS各类选择器也是面试官常考问题,各个选择器优先级顺序、多个选择器组合时优先级比重的计算都是必需要掌握的。
- 解释一下CSS的盒子模型?
- 请你说说CSS选择器的类型有哪些,并举几个例子说明其用法?
- 请你说说CSS有什么特殊性?(优先级、计算特殊值)
- 要动态改变层中内容可以使用的方法?
- 常见浏览器兼容性问题与处理方案?
- 列出display的值并说明他们的作用?
- 如何居中div, 如何居中一个浮动元素?
- CSS中 link 和@import 的区别是?
- 请列举几种清理浮动的方法(至少两种)?
- block,inline和inlinke-block细节比照?
- 什么叫优雅降级和渐进加强?
- 说说浮动元素会引起的问题和你的处理办法
- 你有哪些性能优化的方法?
- 为什么要初始化CSS样式?
- 解释下浮动和它的工作原理?清理浮动的技巧?
- CSS样式表根据所在网页的位置,可分为哪几种样式表?
- 谈谈你对CSS中刻度的认识?
- 请你说说em与rem的区别?
- 请你说说box-sizing属性的的用法?
- 浏览器标准模式和怪异模式之间的区别是什么?
- 怪异Quirks模式是什么,它和标准Standards模式有什么区别?
- 说说你对边距折叠的了解?
- 内联与块级标签有何区别?
- 说说隐藏元素的方式有哪些?
- 为什么重置浏览器默认样式,如何重置默浏览器认样式?
- 谈谈你对BFC与IFC的了解?(是什么,如何产生,作用)
- 说说你对页面中使用定位(position)的了解?
- 如何处理多个元素重叠问题?
- 页面布局的方式有哪些?
- overflow :hidden能否形成新的块级格式化上下文?
JavaScript
JavaScript主要是为Web页面增加交互行为,基础知识超高频考点有数据类型以及判断方法、闭包、块级作用域、函数提升与变量提升、原型链、JS继承、变量深浅拷贝等等,除此之外还有很多零碎知识点都是前台开发必需掌握的。
原型链
(1) 创立对象有几种方法?
(2) instanceof的原理?类
(1) 类的公告?
(2) 生成实例?公告一个类,怎样生成类的实例?继承
(1) call、apply的共同点与区别?
(2) 用javascript实现对象的继承/ 继承的几种方式,这几种方式的优缺点?作用域
(1) 说说你对作用域链的了解?
(2) this?JS闭包
(1) 闭包的特征?
(2) 闭包应用场景?
(3) 实际开发中闭包的应用?JS运行机制,单线程,异步
(1) 如何了解js的单线程?
(2) js为什么是单线程的?
(3) 同步和异步的区别是什么?分别举一个同步和异步的例子?
(4) 何时需要异步?
(5) 什么是任务队列?
(6) 请说出下列的值?
(7) 栈和队列的区别?
(8) 栈和堆的区别?
(9) 什么是event loop?
(10) event-loop流程?
(11) 哪些语句会放入异步任务队列中?
(12) 何时被放入任务队列?JS数据类型
(1) js使用typeof能得到的哪些类型?
(2) 如何精确判断一个变量是数组类型?
(3) js变量按照存储方式区分为哪些类型,并形容其特点?
(4) null和undefined的区别?
(5) undefined的典型用法?
(6) null的典型用法?
(7) chrome60+浏览器中,a===b的是哪项?JS的内置函数,内置对象
(1) js中有哪些内置函数/ 数据封装类对象?
(2) js中有哪些内置对象?
(3) js变量按照存储方式区分为哪些类型,并形容其特点?
(4) 字符串方法/ String对象方法?
(5) 数组方法/ Array对象方法?
(6) 数组API?
(7) 对象API?数组去重
(1) 数组怎样去重?
(2) 对上述数组去重方法速度比较?
(3) 一句话数组去重?
(4) 保留数组中非重复元素?
(5) 保留数组中重复元素?内存泄露
(1) 哪些操作会造成内存泄漏?
(2) js内存泄漏的处理方式DOM
(1) dom是哪种基本的数据结构?
(2) dom操作的常用api有哪些?
(3) dom节点的attribute和property有何区别?
(4) dom结构操作/ 怎么增加、移除、移动、复制、创立和查找节点/ dom操作的
常用api?
(5) dom事件的级别?
(6) dom事件模型?
(7) dom事件流?
(8) 形容dom事件捕获的具体流程?
(9) event对象的常见应用?
(10) 自己设置事件/ 模拟事件?
(11) 通用事件绑定/ 编写一个通用的事件监听函数?
(12) dom树、render树的关系/ dom树、render树的区别(第2、3条)?BOM
(1) bom常用属性?通信
(1) 什么是同源策略及限制?
(2) 前后台如何通信?
(3) 跨域通信的几种方式?
(4) jsonp实现?
(5) 可以跨域的三个标签?
(6) 三个可跨域的标签的使用场景?Ajax
(1) ajax请求的原理/ 手写一个ajax请求?
(2) readyState?
(3) ajax异步与同步的区别?
(4) ajax传递中文用什么方法?错误监控
(1) 前台错误的分类/ 如何检测js错误/ 如何保证你的产品质量?
(2) 错误的捕获方式?
(3) 上报错误的基本原理?模块化
(1) amd、cmd区别?
(2) amd、commonJs区别?虚拟DOM
(1) vdom的如何应用,核心api是什么?
(2) 虚拟dom转换成真实dom?
(3) diff实现过程?
浏览器相关
页面在浏览器中显示时,浏览器针对页面中的HTML、CSS、JS代码,以及各类图片、音频资源有特定的渲染机制,同时页面资源请求是通过浏览器代为执行的,出于安全考虑,浏览器制定了同源策略,当请求方与目的地不同源则需要跨域请求资源,约有5-6种跨域方案,实现原理不同,也有不同方面的优缺点,此类问题几乎是笔试中问答题的必考题。
- 浏览器存储的方式有哪些
- 浏览器内核的了解
- HTTP 的请求方式场景
- HTTP状态码
- 从浏览器地址栏输入URL后发生了什么?
- 请你谈谈Cookie的优缺点
- cookies , sessionStorage 和 localStorage 的区别
- 浏览器缓存
- 浏览器渲染的步骤
- GET 和 POST 请求的区别
- 什么是reflow
- 什么时候会导致reflow发生呢?
- 减少reflow对性能的影响
框架相关
原生JS虽能实现绝大部分功能,但要么就是过于繁琐,要么就是存在缺陷,故绝大多数开发者都会首选框架开发方案。现阶段较热门是React、Vue两大框架,两者工作原理上存在共通点,也存在少量不同点,对于校招来说,不需要两个框架都学得特别熟,一般面试官会针对你简历中写的框架进行提问。
在框架方面,生命周期、钩子函数、虚拟DOM这些基本知识是必需要掌握的,在学习的过程可以结合框架的官方文档
Vue框架
知识要点:
1. vue-cli工程
2. vue核心知识点
3. vue-router
4. vuex
5. http请求
6. UI样式
7. 常用功能
8. MVVM设计模式
React框架
知识要点:
1. 基本知识
2. React 组件
3. React Redux
4. React 路由
计算机网络
网络技术是前台页面数据交互的桥梁,在前台岗的校招中,除了前台方面的知识以外,计算机网络方面算是第二大重点了。
其中较为常考的主要有:OSI七层模型、各层中的传输协议、TCP/UDP区别、TCP三次握手四次挥手、HTTP/HTTPS区别、HTTP各版本、HTTP报文结构等等。这类知识比较枯燥繁琐,在学的时候可以通过画图来增强记忆。
- TCP 建立连接的三次握手过程
- cdn 原理
- HTTP 的头部包含哪些内容。常见的请求方法(我为什么要 说后面的 options,head,connect)
- 请求方法 head 特性
- HTTP 状态码,301和302 有什么具体区别,200 和 304 的 区别
- OSI 七层模型
- TCP 和 UDP 的区别,为什么三次握手四次挥手
- HTTP 缓存机制
- websocket 和 ajax 的区别是什么,websocket 的应用场景有哪些
- TCP/IP 的网络模型
- 知道什么跨域方式吗,jsonp 具体流程是什么,如何实现 原生 Jsonp 封装,优化,对于 CORS,服务器怎样判断它该不 该跨域呢
- 怎样生成 token,怎样传递
- 操作系统进程和线程的区别
- 什么是进程线程
- 线程的那些资源共享,那些资源不共享
- 操作系统里面进程和线程的区别
- Linux 查询进程指令,查询端口,杀进程
- 进程间的通信方式有哪些?
数据结构与算法
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与少量其余算法题。
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳固度,要么是直接手写代码,故在了解算法原理的同时,对JS语言版的排序算法代码也要增强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 假如有一个大的数组,都是整型,怎样找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比方数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻觅这个数的位 置(通过快速查找,二分查找)
- ……
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 字节校招面试题分享,别人已经开始面试了,你不会还没有准备吧?