进入前端行业前明白个道理:程序员解决的问题,大多不是程序问题,前端framework视频

34 阅读9分钟
数据结构与算法

这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

开源分享:docs.qq.com/doc/DSmRnRG…

HTML


  • Doctype的作用?

  • 标准模式和怪异模式的区别:

  • 行内元素/块级元素/空元素有哪些?

  • 介绍一下你对浏览器内核的理解?

  • 常用浏览器的内核有哪些?

  • 浏览器是怎么对HTML5的离线储存资源进行管理和加载的?

  • 描述一下cookies/sessionStorage和localStorage的区别?

  • HTML5新特性有哪些?如何处理HTML5新标签的兼容性问题?如何区分HTML和HTML5?

  • 简述一下你对HTML语义化的理解?

  • HTML5离线缓存怎么使用,工作原理能不能解释一下?

  • 页面导入样式时,使用link和@import有什么区别?

  • Iframe有哪些缺点?

  • Label的作用是什么?怎么用?

  • HTML5的form如何关闭自动完成功能?

  • 如何实现浏览器内多个标签之间的通信?

  • 页面可见性有哪些用途?(visibility API)

  • 如何在页面上实现一个圆形的可点击区域?

CSS


  • ☆浏览器盒模型?

  • ☆清除浮动的方式

  • 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有哪些内置对象?

  • 栈与堆的区别?

  • js中的作用域与变量声明提升

  • 如何转化类型?

  • 什么是面向对象编程及面向过程编程,他们的异同和优缺点

  • 面向对象编程思想

  • 如何解释this在js中起的作用?

  • js中this的用法(经典):

  • ☆说说JS原型和原型链

  • 如何准确判断一个变量是数组类型?

  • ☆call和apply的区别和作用?

  • 继承的方法有哪些?

  • ☆什么是闭包?闭包有什么作用?

  • 事件代理(事件委托):

  • 事件的各个阶段

  • ☆new操作符在创建实例的时候经历了哪几个阶段

  • 异步编程的实现方式

  • 对原生JS了解程度

  • js延迟加载的方法有哪些?

  • 数组从小到大排序?

  • 求从大到小排序可以先使数组从大到小排序,然后添加reverse()方法,使数组顺序颠倒

JQuery:


  • 你觉得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


  • 列举常用的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的优势以及特点

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