首先出这篇文章,一方面是为了记录巩固我所学的知识,明白面试的高频考点。不鼓励大家背题的,初衷是希望总结的一些面试题能帮助你查漏补缺,温故知新。这些题并不是全部,如果你还想看得更多,可以看文末,目前已经有552道大厂真题了,涵盖各类前端的真题,欢迎加入我们一起来讨论
HTML基础
HTML是页面中内容的载体,可以展示开发者想要用户浏览的任何文字、图片、音频信息。对于HTML的各类标签,不仅要掌握日常开发中经常碰到的,也要慢慢积累那些不常用标签,块级、行内元素的定义以及二者相互转换几乎是每场技术一面常考问题。
CSS基础
在校招准备时,掌握CSS各类常用的属性是必要的,其中浮动、清除浮动以及定位更是必考点。CSS盒模型,CSS各类选择器也是面试官常考问题,各个选择器优先级顺序、多个选择器组合时优先级比重的计算都是必须要掌握的。
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种跨域方案,实现原理不同,也有不同方面的优缺点,此类问题几乎是笔试中问答题的必考题。
原生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报文结构等等。这类知识比较枯燥繁琐,在学的时候可以通过画图来加强记忆。
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题。
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!
可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。
(通过快速查找,二分查找)
[外链图片转存中…(img-PJaqAU3W-1622540768787)]
今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!
可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。
资料领取方式:戳这里前往免费领取