摘要:前端面试总结先说背景,本人年月毕业,去年十月校招到今年月一直在做前端开发工作,年前打算换工作,就重新梳理下面试考点总结包含基础,基础,常见算法和数据结构,框架,计算机网络相关知识,可能有的点很细,有的点很大,参考个人情况进行总结,方便对知识
前端面试总结
先说背景,本人2018年7月毕业,去年十月校招到今年10月一直在做前端开发工作,年前打算换工作,就重新梳理下面试考点闭包
总结包含:
JavaScript基础,CSS基础,常见算法和数据结构,React&Vue框架,计算机网络相关知识,可能有的点很细,有的点很大,参考个人情况进行总结,方便对知识进行回忆,有的列举出了参考答案,有的则在文末列举了优秀回答
闭包的概念?
闭包的作用?
使用闭包的注意点?
事件机制事件3个阶段 事件捕获阶段,处于目标阶段,事件冒泡阶段
默认为事件冒泡
ES6let const class 模块化 等等常用ES6知识
箭头函数作用,此处可以扩展考察 this指向问题
set map 相关
原型链4种继承方式
new 原理
深拷贝&浅拷贝数据类型
基本数据类型和引用数据类型
跨域同源策略
CORS
JSONP
Iframe + document.domain
安全CSRF 跨站请求攻击 (原理,保护措施 referer token 验证码,设置cookie的httponly属性,post请求等等
XSS (同上
HTTP 方法几种方法介绍
axios库
输入URL到页面成功渲染的过程经典问题 (任何一个步骤都可以引申来考察
DNS解析 (具体的解析过程
TCP连接
http请求 (状态码考察
返回数据 浏览器渲染页面 (页面渲染过程
上面这些模块下面一一例举
DNS解析过程概念
浏览器缓存
系统缓存
路由器缓存
域名提供商
顶级域名服务器
主域名服务器
浏览器页面渲染加载html构建页面dom树
解析css 构建渲染树
渲染树构建完成后,将渲染树绘制到屏幕(回流和重绘
JS解析,会阻塞dom树的构建
状态码http缓存 304
强制缓存 (expires cache-control
对比缓存 ( Etag & if-none-match last-modified & if-modified-since
301 302 区别(永久性重定向(带缓存和临时性重定向)
垃圾回收引用计数
标记清除
TypeScript使用就不说了,总结下优缺点
增加了代码的可读性和可维护性 编译时错误提示
包容性 .js 可写为 .ts
拥抱ES6, 框架支持
学习成本高如:类,泛型,接口
函数式编程概念 相同的输入 永远的到相同的输出,且没有任何副作用
副作用 比如 ajax请求 改变全局变量
优缺点 1.缓存性 2. 可移植性 3. 并行性 不需要共性内存
柯里化的概念,作用( 最好不要答装逼 我还没想到更好的答案
我列举一个知乎答案: 统一接口,封装的每一层都干干净净,逻辑表现清楚
IndexedDB特点
区别LocalStorage SessionStorage(1.同步 2.存储大小)
WebSocket概念
特点
readyState
排序算法常见的排序算法 复杂度 稳定性
快速排序 不稳定 空间复杂度O(logn) 平均时间复杂度O(nlogn) 最差...O(n2)
选择排序 不稳定 空间复杂度O(1) ...所有都是O(n2)
冒泡排序 稳定
堆排序 不稳定 空间复杂度O(1) ...所有都是O(nlogn)
插入排序
哈希表数组和链表的特点
搜索插入和删除的时间复杂度O(1)
二叉树先序遍历
中序遍历
后序遍历
层序表里
树高
链表翻转链表
AVL树 二叉查找树特点
O(logn)
精度丢失问题0.1 + 0.1 != 0.2 (为什么
计算机内部的信息都是由二进制存储的,但是有些浮点数没法用二进制精准的表示出来
小数转整数
Math.round() 四舍五入
Math.ceil() Math.floor()
生成随机数引入 Math.random() [0,1) 的随机小数
parseInt(Math.random()*(m-n)+n) [n, m)
Math.round(Math.random()*(m-n)+n) [n, m]
数组去重var set = new Set([1,1,2,2,3,3,3,3]) var arr = [...set]
indexOf
如何判断数组是数组Array.isArray(arr) ES5的方法
arr instanceof Array
arr.__proto__.constructor === Array()
Object.prototype.toString.call(arr) === "[object Array]" //数据原型和对象原型定义的toString 方法不同
Object.prototype.toString.call(obj) === "[object Object]" // 如上
Object.prototype.toString.call(null) === "[object Null]" // 推荐此方法
数组指定个数去重 findDuplicate(num)es6 Set Map 相关操作
反转字符串 JS异步异步解决历史(Ajax的进化历程)
Promise,Async/Await 用法 Promise 缺点
Promise API Promise.all & Promise.race
AjaxReadyState (0, 1, 2, 3, 4) 5中状态
js实现ajax
优缺点
单/双向数据绑定MV** 概念
vue/react 数据绑定机制
Vue生命周期
父子组件通信
双向数据绑定
vm.$nextTick原理
React生命周期
Virtual-dom技术以及改良后的Diff算法
对比Vue.js
数组去重 数组扁平化 深拷贝和浅拷贝 Position属性几种属性值
Box-sizing 属性content-box border-box
盒模型 W3c标准盒模型和IE盒模型
两栏布局 三栏布局常见自适应布局写法
回流和重绘概念
举例
如何避免 eg: DocumentFragment, Absolute
浮动伪元素和伪类
清除浮动常见3种方法
隐藏元素display none
visibility hidden 区别
垂直居中布局常见的垂直居中布局方法
前端性能优化列举常见前端性能优化方法
列举一些优秀回答
输入URL你可以看到什么?
HTTP缓存
域名解析过程
vue生命周期
React生命周期
CSRF攻击
水平垂直居中布局
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/117105.html
摘要:前端面试总结先说背景,本人年月毕业,去年十月校招到今年月一直在做前端开发工作,年前打算换工作,就重新梳理下面试考点总结包含基础,基础,常见算法和数据结构,框架,计算机网络相关知识,可能有的点很细,有的点很大,参考个人情况进行总结,方便对知识 前端面试总结 先说背景,本人2018年7月毕业,去年十月校招到今年10月一直在做前端开发工作,年前打算换工作,就重新梳理下面试考点总结包含: ...
摘要:此篇文章并未如何教你怎么面试的时候吹逼,而是给一点点建议,如何更聪明地达到目的。据不完全统计,基本都是做管理后台改。不要太沉溺和纠结于技术,把重心移到业务能力上,踏踏实实做事。 前言 对于很多刚毕业或者大四的同学,都会有个困惑,我如何学PHP,为什么知识会那么杂,然后实习中公司大概需要哪些要求。此篇文章并未如何教你怎么面试的时候吹逼,而是给一点点建议,如何更聪明地达到目的。 实习可...
摘要:获取的对象范围方法获取的是最终应用在元素上的所有属性对象即使没有代码,也会把默认的祖宗八代都显示出来而只能获取元素属性中的样式。因此对于一个光秃秃的元素,方法返回对象中属性值如果有就是据我测试不同环境结果可能有差异而就是。 花了很长时间整理的前端面试资源,喜欢请大家不要吝啬star~ 别只收藏,点个赞,点个star再走哈~ 持续更新中……,可以关注下github 项目地址 https:...
摘要:平日学习接触过的网站积累,以每月的形式发布。年以前看这个网址概况在线地址前端开发群月报提交原则技术文章新的为主。 平日学习接触过的网站积累,以每月的形式发布。2017年以前看这个网址:http://www.kancloud.cn/jsfron... 概况 在线地址:http://www.kancloud.cn/jsfront/month/82796 JS前端开发群月报 提交原则: 技...
阅读 3174·2021-11-25 09:43
阅读 3392·2021-11-11 16:54
阅读 793·2021-11-02 14:42
阅读 3709·2021-09-30 09:58
阅读 3631·2021-09-29 09:44
阅读 1236·2019-08-30 15:56
阅读 2069·2019-08-30 15:54
阅读 2934·2019-08-30 15:43