校招,全称校园招聘,指企业招聘那些即将毕业的学生。校招主要分为三个部分:简历筛选,笔试,面试。
对比社招,以应届生身份参加校招有以下几个优势:
- 校招更注重基础,应届毕业生普遍缺少工作经验,但基础知识掌握较好、学习能力强。
- 校招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设计模式
算法刷题
大厂面试还是很注重算法题的,尤其是字节跳动,算法是问的比较多的,关于算法,推荐《LeetCode》和《算法的乐趣》,这两本我也有电子版,字节跳动、阿里、美团等大厂面试题(含答案+解析)、学习笔记、Xmind思维导图均可以分享给大家学习。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
写在最后
最后,对所以做Java的朋友提几点建议,也是我的个人心得:
-
疯狂编程
-
学习效果可视化
-
写博客
-
阅读优秀代码
-
心态调整