---
url: https://sugarat.top/interview/problem.md
---

# Q\&A

前端面试常见问题与个人的总结整理

**下面是记录的所有面试题目录:smile:**

## js

[原始类型有哪些？](./../js/primitiveType.md)



[null是对象吗？](./../js/nullobj.md)



[为什么0.1+0.2!=0.3?](./../js/numNotEqual.md)



[对象类型与原始类型的不同之处?](./../js/objDiffPrim.md)



[函数参数是对象会发生什么问题?](./../js/objparam.md)



[typeof能否正常判断类型?](./../js/typeof.md)



[instanceof能正确判断类型的原因是什么?](./../js/instanceof.md)



[概述原型与原型链?](./../../bigWeb/js/prototype.md)



[如何正确判断this?](./../js/this.md)



[==与===有什么区别?](./../js/equal.md)



[什么是闭包?](./../../bigWeb/js/closure.md)



[深拷贝与浅拷贝?](./../../bigWeb/js/copy.md)



[为什么使用模块化？JS实现模块化的几种方式](./../js/module.md)



[Promise的特点/优点/缺点？](./../js/promise.md#特点)



[什么是Promise链？](./../js/promise.md#promise链)



[Promise构造函数执行和then函数执行有什么区别？](./../js/promise.md#promise链)



[async及await的特点/优点/缺点是什么？](./../js/asyncawait.md)



[await原理是什么？](./../js/asyncawait.md)



[new原理是什么？](./../../coding/js/myNew.md)



[new创建对象与字面量创建对象的区别？](./../../coding/js/myNew.md)



[v8下的垃圾回收机制？](./../js/v8garbage.md)



[事件触发过程是怎么样的？](./../js/event.md)



[什么是事件代理？](./../js/event.md)



[什么是跨域？使用同源策略的原因？](./../../bigWeb/browser/cors.md)



[解决跨域的方式？](./../../bigWeb/browser/cors.md)



[什么是预检请求？](./../../bigWeb/browser/cors.md#预检请求)



[什么是函数柯里化？](./../../bigWeb/js/currying.md#柯里化)



[JS的垃圾回收机制？](./../../bigWeb/js/garbage.md)



[什么是节流,防抖？](./../../bigWeb/js/throttling.md#防抖)



[浏览器与Node中event loop?他们有何不同？](./../../bigWeb/js/eventloop.md)



[概述一下js中的词法作用域？](./../../bigWeb/js/scope.md)



[for in遍历数组会有哪些问题](./../../interview/js/diff-for-in-of.md)



[window.onload与document.ready执行顺序](./../js/onload-ready.md)

了解JSBridge吗

## css

[什么是回流与重绘？](./../../bigWeb/css/reflow.md#回流)



[什么是盒模型？](./../../bigWeb/css/box.md)



[CSS的层级关系？](./../../bigWeb/css/level.md)



[什么是BFC？](./../../bigWeb/css/bfc.md)



[flex弹性布局？](./../../bigWeb/css/flex.md)



[display属性有哪些?作用分别是什么?](./../css/display.md)



[position的值有哪些?](./../css/position.md)



[什么是语义化标签?有哪些?为什么要使用它](./../../bigWeb/html/semantic.md)



[哪些属性不可以被继承](./../css/inherit.md)



[display:none,opactiy:0,visibility:hidden区别](./../css/hideElement.md)



[什么是IFC？](./../../bigWeb/css/ifc.md)



[grid布局？](http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html)


## vue

[实现数据的响应式的原理？](./../../bigWeb/vue/dep.md)



[路由原理,为什么浏览器不会刷新](./../../bigWeb/vue/routing.md)


## ES6

[常见es6问题?](./../js/es6.md)



[Symbol的用法?](./../../bigWeb/js/symbol.md)



[箭头函数特点?](./../../bigWeb/js/arrowfun.md#特点)



[什么是提升/暂时性死区?var/let/const区别](./../other/promote.md)


## 小程序

[小程序的特点?](./../mini/feature.md)



[小程序的原理?](./../mini/principle.md)



[与传统移动web的异同?](./../mini/differentweb.md)

小程序是如何与webview通信的?

## 浏览器

[浏览器的缓存机制？](./../../bigWeb/browser/cache.md)



[什么是强缓存/协商缓存？](./../../bigWeb/browser/cache.md#强缓存)



[协商缓存的作用？如何工作的？](./../../bigWeb/browser/cache.md#协商缓存)



[浏览器安全问题？](./../../bigWeb/browser/safe.md)


## 编程题

[如何实现继承](./../../coding/js/inherit.md)



[模拟实现new命令](./../../coding/js/myNew.md)



[如何实现 a==1&\&a==2](./../../coding/js/equalA.md)



[快排实现](./../../coding/algorithm/quickSort.md)



[单链表转置](./../../coding/algorithm/linkReserve.md)



[模拟实现call](./../../coding/js/myCall.md)



[模拟实现apply](./../../coding/js/myApply.md)



[模拟实现bind](./../../coding/js/myBind.md)



[节流与防抖实现](./../code/debounce-throttle.md)



[使用requestAnimationFrame实现setTimeout/setInterval](./../code/myClock.md)



[如何实现水平居中,垂直居中,垂直水平居中](./../code/middle-center.md)



[实现36进制转换](./../code/transfer.md)



[二叉树树的遍历方式,前/中/后,层次](./../code/treeTraverse.md)



[函数柯里化实现](./../../bigWeb/js/currying.md)



[模式串匹配,在找出子串在模式串中第一次出现的位置](./../code/kmp.md)

对称二叉树
并发请求?
实现一个ajax
判断一个有向图是否包含环

## 网络

[概述一下TCP](./../../computerBase/Internet/tcp.md)



[概述一下UDP](./../../computerBase/Internet/udp.md)



[TCP与UDP区别](./../../computerBase/Internet/tcp-udp.md)



[概述HTTP](./../../computerBase/Internet/http.md)



[HTTP与HTTPS的区别](./../../computerBase/Internet/http.md#HTTPS)



[TLS协议握手过程,如何工作的](./../../computerBase/Internet/http.md#TLS)



[HTTP2的特点](./../../computerBase/Internet/http.md#http2)



[如何才能使用HTTP2,有什么前提条件](./../../computerBase/Internet/http.md#如何使用)



[HTTP3中使用的QUIC协议基于UDP的原因?](./../../computerBase/Internet/http.md#QUIC)



[如果响应头Content-Length=0那么是发出来被截取了还是没发出来?](./../../computerBase/Internet/clength.md)



[跨域如何携带cookie](./../../bigWeb/browser/cors.md)


## 操作系统

[线程与进程的概念/区别/如何工作的?](./../../computerBase/os/difprothr.md)



[进程和线程怎么通信?](./../../computerBase/os/communicate.md)



[什么是死锁?为什么会出现?如何避免](./../../computerBase/os/deadlock.md)

进程之间如何进行切换的?
几种常见的页面置换算法

## 综合问题

[怎么理解前端工程化？](./../other/engineering.md)



[浏览器输入url之后到网页显示发生了什么](./../other/inputurl.md)



[原型如何实现继承,Class 如何实现继承,Class 本质是什么](./../../coding/js/inherit.md)



[typeof 是否能正确判断类型,instanceof 能正确判断对象的原理是什么](./../other/judgeType.md)



[对象类型和原始类型的不同之处？函数参数是对象会发生什么问题？](./../other/object.md)



[原始类型有哪几种？null 是对象吗？](./../../interview/js/primitiveType.md)



[什么是提升？什么是暂时性死区？var、let 及 const 区别？](./../other/promote.md)


[如何理解原型？如何理解原型链？](./../other/prototype.md)


## 非技术问题

未来的职业规划
除开发外的兴趣爱好
自己的长处/优势
自己的不足
跟其它候选人相比,你觉得你的优势在哪里
对前端工程化的理解
为什么选择前端
平时怎么学习的,最近在看什么
你觉得自己最成功的一次分享或者成果是什么
你如何看待前端这个行业
你为什么会选择我们

## 目录
