这个Repo主要用来分享前端面试题,目前已经涵盖html&css、bom&dom、js基础、webpack、HTTP、HTTP2&HTTP缓存、跨域、HTTPS、Git、计算机基础、数据结构与算法、性能优化等内容,后续还会不断更新。
如果对于有所帮助,可以给个star。有纰漏的地方,欢迎给我们提PR。
如果想获取本Repo的PDF版本,可以用微信扫描下方二维码,回复 “pdf” ,即可获取。如果二维码加载不出来,可以在微信搜索公众号 “前端技术星球”,回复 “pdf” ,即可获取PDF版本。
- 1.BOM事件?
- 2.常见BOM事件?
- 3.BOM事件处理程序?
- 4.BOM对象方法?
- 5.BOM对象
- 1.history
- 2.location
- 3.document
- 6.DOM?
- 7.DOM节点
- 8.DOM获取节点
- 9.DOM创建节点与插入节点
- 10.DOM0级和DOM2级有什么区别
- 11.textContent、innerText、innnerHTML、value的区别
- 12.关于dom的api有什么
- 13.什么叫Dom事件流?
- 14.如何让事件先冒泡后捕获
- 15.说一下事件代理
- 1. 如何理解CSS盒子模型
- 2.BFC
- 3.标签语义化
- 4.meta标签
- 5.css与javascript引入设置
- 6.HTML的块级元素,行内元素,行内块元素有哪些,区别是什么
- 7.CSS3有哪些新特性
- 8.实现元素隐藏
- 9.如何实现元素水平居中
- 10.如何实现元素垂直居中
- 11.Position
- 12.定位元素水平垂直居中
- 13.清除浮动
- 14.css选择器有哪些,选择器的优先级
- 15.各种布局优缺点
- 16.html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
- 17. CSS3新增伪类举例:
- 18.解释盒模型宽高值得计算方式,边界塌陷,负值作用,box-sizing概念?
- 19.如何实现浏览器内多个标签页之间的通信?
- 20.解释下浮动和它的工作原理?清除浮动的方法
- 1.什么是闭包
- 2.闭包的用途
- 3.闭包的缺点
- 4.闭包实用场景
- 5. JS 有哪些数据类型?
- 6.基本数据类型和引用数据类型有什么区别?
- 7.判断数据类型的方法有哪些?
- 8.浅拷贝与深拷贝有何区别?如何实现?
- 9. let、const的区别是什么?
- 10. 什么是执行上下文和执行栈?
- 11.什么是作用域和作用域链?
- 12.作用域和执行上下文的区别是什么?
- 13.this指向的各种情况都有什么?
- 14.如何改变this指针的指向?
- 15.如何理解同步和异步?
- 16.JS是如何实现异步的?
- 17.什么是AJAX?如何实现?
- 18.实现异步的方式有哪些?
- 19.怎么理解Promise对象?
- 20.怎么理解宏任务,微任务???
- 21.实现继承的方法有哪些???
- 22.require/import之间的区别?
- 23.原型和原型链
- 24.事件委托
- 25.解释一下变量的提升
- 26. 如何理解高阶函数
- 27.如何区分声明函数和表达式函数
- 28.解释原型继承是如何工作的
- 1.webpack与grunt、gulp的不同?
- 2.与webpack类似的工具还有哪些?谈谈你为什么最终选择(或放弃)使用webpack?
- 3.有哪些常见的Loader?他们是解决什么问题的?
- 4.有哪些常见的Plugin?他们是解决什么问题的?
- 5.Loader和Plugin的不同?
- 不同的作用
- 不同的用法
- 6.webpack的构建流程是什么?从读取配置到输出文件这个过程尽量说全
- 7.是否写过Loader和Plugin?描述一下编写loader或plugin的思路?
- 8.webpack的热更新是如何做到的?说明其原理?
- 原理:
- 9.如何利用webpack来优化前端性能?(提高性能和体验)
- 10.如何提高webpack的构建速度?
- 11.怎么配置单页应用?怎么配置多页应用?
- 12.npm打包时需要注意哪些?如何利用webpack来更好的构建?
- 13.如何在vue项目中实现按需加载?
- 14.webpack是解决什么问题而生的?
- 15.如何配置多入口文件?
- 16.webpack中的模块解析规则
- 17.webpack中的模块解析规则具体实现
- 18.什么是模块热替换
- 1.https的访问过程
- 2.https的优缺点?
- 1. 优点
- 2、缺点
- 3.https如何进行性能优化?
- 1.https访问速度优化
- 2.https计算性能优化
- 4.http和https
- 5.HTTPS为什么是安全的?
- 6.HTTPS相对于HTTP的缺陷?
- 7.为什么需要证书?
- 8.怎么防止的篡改?
- 1.什么是域名发散和域名收敛?
- 2.为什么浏览器要做并发限制呢?
- 3.什么是 DDOS 攻击
- 4.DDOS 攻击方式
- 5.如何应对 DDOS 攻击
- 6.http请求过程
- 7.DNS 域名如何解析的?
- 8.TCP三次握手
- 9.为什么要三次握手?
- 10.为什么HTTP协议要基于TCP来实现?
- 11.什么是面相连接协议?面向无链接协议又是什么?
- 1. 面相连接协议定义
- 2. 面向无链接协议定义
- 12.说到三次握手,那在说下四次挥手吧?
- 13.为什么要四次挥手
- 14.为什么建立连接是三次握手,关闭连接确是四次挥手呢?
- 15.如果已经建立了连接,但是客户端突然出现故障了怎么办?
- 16.http请求方式有哪些?
- 17.常用的请求状态码?
- 18.TCP和UDP的区别以及应用场景
- 1.UDP
- 2.TCP
- 3.应用场景
- 19.GET和POST的区别
- 20.cookies机制和session机制的区别:
- 21.HTTP、状态码:
- 22.Internet采用哪种网络协议?该协议的主要层次结构?
- 23.IP地址的编码分为哪俩部分?
- 24.TCP/IP通信建立的过程怎样,端口有什么作用?
- 25.IP组播有那些好处?
- 1.http/2项目设定目标
- 2.http/2特性
- 3.什么是缓存?又有什么用?
- 4.你知道有哪些缓存方式吗?
- 5.缓存位置
- 6.http缓存怎样生效的?
- 7.HTTP2的伪头字段
- 8.HTTP 2:服务器推送
- 9.队首阻塞问题
- 10.Transport头域
- 11.时效缓存(强制缓存)
- 12.非时效缓存(对比缓存,用的是标识):
- 13.两种缓存标识
- 14.Service Worker
- 15.memory cache
- 16.disk cache
- 1.什么是跨域
- 2.同源策略
- 3.为什么有同源策略
- 4.跨域的解决方案
- 5.jsonp原理
- 6.常见的跨域场景
- 7.postMessage跨域
- 8.资源共享跨域(CORS)
- 9.nginx代理跨域
- 10.nodejs中间件代理跨域
- 1、 非vue框架的跨域(2次跨域)
- 2、 vue框架跨域
- 11.webscoket协议跨域
- 1.列举工作中常用的几个git命令?
- 2. 提交时发生冲突,你能解释冲突是如何产生的吗?你是如何解决的?
- 3. 如果本次提交误操作,如何撤销?
- 4. 如果我想修改提交的历史信息,应该用什么命令?
- 第二步:执行命令git rebase –i HEAD~3,会把前3次的提交记录按照倒叙列出来;
- 5. 你使用过git stash命令吗?你一般什么情况下会使用它?
- 6. 如何查看分支提交的历史记录?查看某个文件的历史记录呢?
- 7. 能不能说一下git fetch和git pull命令之间的区别?
- 8. 使用过git merge和git rebase吗?它们之间有什么区别?
- 9. 能说一下git系统中HEAD、工作树和索引之间的区别吗?
- 10. 之前项目中是使用的GitFlow工作流程吗?它有什么好处?
- 11. 使用过git cherry-pick,有什么作用?
- 12. git跟其他版本控制器有啥区别?
- 13.我们在本地工程常会修改一些配置文件,这些文件不需要被提交,而我们又不想每次执行git status时都让这些文件显示出来,我们该如何操作?
- 14. 如何把本地仓库的内容推向一个空的远程仓库?
- 15.如在 Git 恢复先前的提交?
- 16.什么是“git cherry-pick”?
- 1.CPU基础
- 2.CPU与主存
- 3.程序等同数据
- 4.指令系统
- 5.指令寄存器与程序计数器
- 6.指令如何执行
- 7.控制器
- 8.直接存储器存取
- 9.什么是程序局部性?为什么会有程序的空间局部性?
- 10.为了实现重定位,需要哪些硬件?
- 11.在交互式系统中,非剥夺是不是一个好的策略?为什么?
- 12.谈一谈计算机网络和分布式计算机系统的区别
- 13.为什么要引入多道程序技术?
- 14.处理器如何读并解释存储在内存中的指令
- 15.总线
- 16.I/O设备
- 17.主存
- 18.处理器
- 19.计算机如何访问信息
- 20.什么是操作数指示符
- 21.如何传送数据
- 22.栈数据如何压入和弹出
- 23.如何进行算数和逻辑操作
- 24.什么是“加载有效地址”
- 25.什么是一元和二元操作