1 HTML
- HTML语义化,为什么要语义化 link
- < !DOCTYPE> 文档声明,meta标签
文档类型说明< DOCTYPE > 作用:主要用来指定HTML元素,需要遵循HTML哪个版本。
< meta> 标记,用来定义与网页相关的一些元信息,比如:为了让百度,谷歌等搜索引擎方便采集本网页的一些关键字 - 严格模式:修复了部分语言上的不足,提供更强的错误检查,并增强安全性
- HTML与XHTML----二者有什么区别
- 浏览器内核
- px和em的区别:浏览器的默认字体高都是16px,为什么是16px
- H5新特性
- 浏览器缓存有哪些,通常缓存有哪几种
- cookies、sessionStorage和(globalstorage)localstorage区别
- websocket:H5新增协议。全双工 ,SharedWorker
第一个比较全的链接
第二个参考的链接
2 css(less/sass补)
- 两种盒模型box-sizing指定
- 盒子水平/垂直居中的多种方法,margin重合问题
- 圣杯布局、双飞翼布局
- 定位:position的值, relative和absolute分别是相对于谁进行定位的
- 清除浮动,BFC
- CSS中link 和@import的区别
- 什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?
- CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些
- css3新特性:flex、动画、媒体查询等
第一个比较全的链接
3 原生JS
- 事件委托、事件冒泡
- 绑定多个事件,addEventListener,有几个参数
- 定时器两个(封装?)
- new操作符到底到了什么,封装一个new
- 判断一个字符串中出现次数最多的字符,统计这个次数(多种方法)
- 判断数组的几种方式
- 数组去重的多种方法
- undefined 和 null 区别
- document.write和innerHTML,DOM节点的操作方法
- JS哪些操作会造成内存泄露
- 原型链、闭包
- 实现深拷贝
- 递归及其优化
- js继承的几(6)种方式
- eval()的作用
- javascript对象的几种创建方式
- 用过哪些设计模式
- 异步加载和延迟加载
- 懒加载: 懒加载
- js异步加载(文件)的方式
- js延迟加载的方式有哪些-----defer和async、动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack)、按需异步载入js
- call() 和 apply() 的区别和作用
第一个比较全的链接
4 ES6
- let、const,声明提升,作用域
- 模板字符串、扩展运算符、解构赋值
- 箭头函数
- for…of与for…in区别,import 和 export
- Map、Set数据结构,Symbol(回忆JS数据类型)
- class(super):在react中用得多
- 装饰器、generator(yield)
- 封装promise
- proxy的作用
- async/await
- 函数节流和函数防抖 防抖和节流
5 框架相关(主vue)
- mvvm mvc区别,原理
- 双向数据绑定和单向数据绑定
- data为什么是函数(javascript原型链)
- computed计算属性的缓存
- 生命周期,created和mounted区别
- 8个生命周期+2+1
- keep-alive是Vue的内置组件,其中的生命周期只会走一遍,并且会增加activated和deactivaed生命周期,用以其他的业务逻辑。
errorCaptured
:当捕获一个来自子孙组件的错误时被调用。
此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回 false 以阻止该错误继续向上传播。- keep-alive与vue-router中的
元信息meta
—$route.meta.keepAlive 链接 - render函数的封装
- key的作用(虚拟DOM和diff算法)
- vue组件传值方式(多种)
- vue-router和vuex相关底层(导航守卫等)
- vue源码页
链接: vue链接
6 浏览器/网络/安全
- 网络分层里七层模型是哪七层
- TCP传输的三次握手四次挥手
- TCP和UDP的区别
- http 和 https 有何区别
- 常见的HTTP状态码
- 什么是Etag(304缓存的原理)
- GET和POST区别
- 从输入url到显示页面,都经历了什么
- 进程和线程
- 垃圾回收机制方式及内存管理(垃圾回收策略:标记清除(较为常用)和引用计数)
- web安全及防护原理:sql注入原理、XSS原理及防范、XSS与CSRF有什么区别
性能优化
问题:减少DOM操作等,代码优化等,浏览器渲染原理,SEO- Expires和Cache-Control
- 重绘、重构的理解
- 对AMD和Commonjs的理解
第一个比较全的链接
7 项目相关
- 为什么跨域,如何解决跨域
- webpack
- ajax(原生封装)
- 对前端模块化的认识
- 前端工程的价值体现在哪
8 其他(数据格式/git/svn/数据库/UI)
- XML和JSON的区别
- 渐进增强和优雅降级
- Web Worker
- Git相关: git常用命令,代码冲突解决,版本回退等。
- git fetch和git pull的区别
- svn要简单了解
- 数据库:mongoDB和MySQL的区别
- UI要会,项目用的多
9 数据结构与算法
- 栈和队列的区别?
- 栈和堆的区别?
- 快速排序的思想并实现一个快排,复杂度分析等
- 链表
正式面试:面经