云社区 博客 博客详情

字节校招面试题分享,别人已经开始面试了,你不会还没有准备吧?

CSDN 发表于 2021-03-09 01:35:56 2021-03-09
0
0

【摘要】 字节面试题分享,了解校招,还有前端校招面试题分享,不容错过。 字节跳动(校招) 一面: TCP、UDP是什么,区别,应用什么是字节流,什么是数据报TCP为啥可靠超时重传、累计确认的过程HTTP跟TCP的联系http通信过程http头部字段,平时在项目中有应用过吗,具体说一说Cookie、localStorage、sessionStorage用过吗?说一说...

字节面试题分享,了解校招,还有前端校招面试题分享,不容错过。

字节跳动(校招)

一面:

  • 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(); // undefined
obj.fun(); // "bytedance"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 有没有用过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
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

篇幅有限,需要面试题资料(包括面试题答案)可以点击这里,免费获取所有面试题资料,学习路线图。

文章来源: blog.csdn.net,作者:QIANDXX,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/QIANDXX/article/details/114394454

登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 0
点赞
分享文章到微博
分享文章到朋友圈

上一篇:C语言中的for循环(小坑需注意)

下一篇:jQuery中的ajax相关知识点

评论 (0)


登录后可评论,请 登录注册

评论