数据结构与算法
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题。
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)
-
Doctype的作用?
-
标准模式和怪异模式的区别:
-
行内元素/块级元素/空元素有哪些?
-
介绍一下你对浏览器内核的理解?
-
常用浏览器的内核有哪些?
-
浏览器是怎么对HTML5的离线储存资源进行管理和加载的?
-
描述一下cookies/sessionStorage和localStorage的区别?
-
HTML5新特性有哪些?如何处理HTML5新标签的兼容性问题?如何区分HTML和HTML5?
-
简述一下你对HTML语义化的理解?
-
HTML5离线缓存怎么使用,工作原理能不能解释一下?
-
页面导入样式时,使用link和@import有什么区别?
-
Iframe有哪些缺点?
-
Label的作用是什么?怎么用?
-
HTML5的form如何关闭自动完成功能?
-
如何实现浏览器内多个标签之间的通信?
-
页面可见性有哪些用途?(visibility API)
-
如何在页面上实现一个圆形的可点击区域?
-
☆浏览器盒模型?
-
☆清除浮动的方式
-
CSS选择器有哪些?哪些属性可以继承?
-
::after/:after与::before/:before的区别?
-
CSS样式优先级计算法:
-
☆CSS3新特性和伪类有哪些?
-
less的一些优势。
-
如何居中div?
-
Display有哪些哪些值?说明他们的作用
-
Position的值?
-
flex布局以及常用属性
-
请解释一下CSS3的flexbox(弹性盒布局模型),以及适用场景?
-
CSS打造三角形?
-
满屏品字布局?
-
li与li之间有看不见的空白间隙是什么原因引起来的?
-
为什么要初始化css样式?
-
CSS中的visibility属性的collapse[kə’læps]属性是干嘛的?
-
外边距合并是指的什么意思?
-
移动端的布局用过媒体查询吗?
-
响应式页面?
-
CSS预处理器(sass和less)用过吗?
-
使用CSS预处理的优缺点分别是什么?
-
CSS优化/提高性能的方法有哪些?
-
浏览器是怎么解析CSS选择器的?
-
Margin与padding的区别?
-
Css如何实现横向滚动与竖向滚动?
-
如何设置滚动条样式?
-
视觉差效果是如何实现的?
-
你对line-height如何理解?
-
JS是一种什么样的语言?
-
JS数据类型有哪些?
-
介绍JS有哪些内置对象?
-
栈与堆的区别?
-
js中的作用域与变量声明提升
-
如何转化类型?
-
什么是面向对象编程及面向过程编程,他们的异同和优缺点
-
面向对象编程思想
-
如何解释this在js中起的作用?
-
js中this的用法(经典):
-
☆说说JS原型和原型链
-
如何准确判断一个变量是数组类型?
-
☆call和apply的区别和作用?
-
继承的方法有哪些?
-
☆什么是闭包?闭包有什么作用?
-
事件代理(事件委托):
-
事件的各个阶段
-
☆new操作符在创建实例的时候经历了哪几个阶段
-
异步编程的实现方式
-
对原生JS了解程度
-
js延迟加载的方法有哪些?
-
数组从小到大排序?
-
求从大到小排序可以先使数组从大到小排序,然后添加reverse()方法,使数组顺序颠倒
-
你觉得jQuery或zepto源码有哪些写的好的地方
-
jQuery的实现原理?
-
jQuery.fn的init方法返回的这指的是什么对象?为什么要返回这个?
-
jQuery.extend与jQuery.fn.extend的区别?
-
jQuery的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?
-
JQuery的队列是如何实现的?队列可以用在哪些地方?
-
jQuery中的bind(),live(),delegate(),on()的区别?
-
jQuery一个对象可以同时绑定多个事件,这是如何实现的?
-
针对jQuery的优化方法
-
http请求方式有哪些?
-
http的状态码有哪些?分别说下它们的含义
-
请描述一下get与post的区别
-
get请求传参长度的误区
-
http和https有何区别?如何灵活使用?
-
什么是AJax?为什么使用Ajax?
-
简述ajax的过程。
-
Ajax优缺点?
-
XMLHttpRequest通用属性和方法
-
Ajax请求跨域接口,发送了几次请求?
-
跨域的几种方式
-
web应用从服务器端主动推送data大客户端有哪些方式?
-
如何实现浏览器内多个标签页之间的通信? (阿里)
-
webSocket如何兼容低浏览器?(阿里)
-
fetch、ajax、axios之间的详细区别以及优缺点:
-
为什么要用axios?
-
axios是什么?怎么使用?描述使用它实现登录功能的流程?
-
xml和json的区别?
-
列举常用的ES6特性:
-
箭头函数需要注意哪些地方?
-
箭头函数和普通函数之间的区别
-
let、const、var
-
拓展:var方式定义的变量有什么样的bug?
-
箭头函数this的指向。
-
手写ES6 class继承。
-
ES5的继承和ES6的继承有什么区别?
-
ES6 class 的new实例和ES5的new实例有什么区别?
-
generator生成器函数:
-
什么是async/await及其如何工作?
-
Promise和async await以及它们之间的区别:
-
async函数的基本用法:
-
async与generator的区别?
-
简单实现async/await中的async函数
-
有用过promise吗?请写出下列代码的执行结果,并写出你的理解思路
-
react的优势以及特点
-
React中的props和state的用法
-
react组件之间如何通信?
-
为什么虚拟DOM会提高性能?
-
react生命周期函数:
-
react性能优化是哪个周期函数?
-
在生命周期中的哪一步你应该发起AJAX请求?
-
概述一下REact中的事件处理逻辑
-
如何告诉React它应该编译生产环境版本?
-
调用setState之后发生了什么?
-
react的setState的原理及用法
-
setState为什么是异步的?
-
传入setState函数的第二个参数的作用是什么?
-
shouldComponentUpdate的作用是啥以及为何它这么重要?
-
createElement与cloneElement的区别是什么?
-
为什么我们需要使用React提供的Children API而不是JS的map?
-
React中的Element与Component的区别是?
-
在什么情况下你会优先选择使用class Component而不是functional Compone
数据结构与算法
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)