当前位置: 首页 > Web前端 > HTML5

2018年大厂高级前端面试真题汇总

时间:2023-04-04 23:42:38 HTML5

(关注福利,关注本公众号回复【素材】可领取优质前端视频,包含Vue、React、Node源码及实战、面试指导)我从7月到8月开始准备面试,闯过五道坎,杀了六将,终于拿下了网易,深深感受到了前端高级面试的套路。以下是我整理的面试题总结。不敢隐瞒,一一奉献。受访企业有:阿里、网易、滴滴、今日头条、有赞、外财、沪江、饿了么、携程、喜马拉雅、兑吧、微医、寺库、宝宝树、海康威视、蘑菇街、酷家乐、百分号、海风教育。以下是面试问题的总结。后续阶段,我们将继续深度更新面试题答案。让我们互相鼓励吧!PS:文末有GitHub链接。欢迎Star,也欢迎加入进阶前端进阶群一起学习(文末)。koa-body的原理,阿里使用的koa2中间件。介绍下我写的中间件是否涉及到Cluster。介绍一下当pm2master宕机时如何处理pm2。如何与MySQL通信。React语句循环和我自己的理解。如何配置React-Router路由动态加载模块服务端渲染SSR介绍路由历史介绍Redux数据流转流程介绍Redux如何实现多个组件之间的通信,如何管理多个组件使用相同的状态如何拆分多个组件之间的状态,每个小组件都有自己的状态,它们之间有一些共同的状态需要维护。怎么思考如何用这个使用Redux中间件解决跨域问题Layout其他css方法设置垂直居中为什么要用transform(为什么不用marginLeft/Top)[x]你用过webpack中的哪些插件和loader[x]webpack中的插件是如何实现的?如何优化提取公共文件如何配置项目如何处理安全问题如何实现这个对象的深拷贝网易引入redux,主要解决什么问题如何断点续传文件上传能否跨域形成formspromise和asyncSearchrequests如何实现处理(防抖)搜索请求中文如何请求观察者模式介绍中介模式介绍观察者和订阅-发布的区别,用在什么地方React优化介绍http2.0如何处理并发请求http1.1复用tcp连接介绍服务worker介绍css3position:stickyreduxrequestmiddleware如何处理并发介绍Promise,exceptioncapture介绍position属性包括CSS3新浏览器事件流介绍事件代理及优缺点React组件中如何做事件代理事件代理的原理介绍在这各种情况。前端如何控制和管理路由?使用路由时遇到问题如何解决?React怎么解决?如何查看和更改数据?滴滴?>标签之间有什么区别?禁用标签的默认事件后实现跳转是怎么做的?React级别的性能优化。整体的前端性能提升大致可以分为几类。[x]import{Button}from'antd',打包时只打包但是ton,按模块加载,怎么做[x]使用import时,webpack会依赖node_modules什么?JS异步解决方案的发展历程和优缺点。Httpmessagerequests会有几个部分放cookies,cookies能做的事情和存在cookies和tokens的值都保存在header中,为什么只劫持前面的cookies和session组件、textComponent、textComponent、composeComponent,domComponent,区别与关系,如何区分Dom结构变化时数据的变化,如何更新,如何调度更新,如果更新过程中有其他任务,主要是哪个类型的key如何处理解决了问题,为什么不推荐使用index索引(重绘)Redux中如何处理异步请求?什么是Redux中间件?它接受几个参数(两端的柯里化函数)。组件如何获取store和action,然后如何处理state如何注入到组件中,从reducer到组件经历了怎样的过程,response.send,response.rounded,还有koa中的response.json,浏览器为什么能识别出是json结构或者htmlkoa-bodyparser是怎么解析request[x]的,webpack的整个生命周期,loader和plugin有什么区别[x]引入AST(抽象语法树)AndroidActivity之间的数据是如何传递的?从Android4.0到6.0,WebView对js兼容性的变化。WebView是如何与原始通信的?内部实现[x]清除浮动[x]定位问题(绝对定位,相对定位等)从输入URL到页面加载,整个tcp3路握手过程中tcp属于哪一层(1物理层->2数据链路层->3网络层(ip)->4传输层(tcp)->5应用层(http))redux设计思想accessreduxprocessbindingconnectprocessconnect原理[x]webpack介绍==和===的区别,什么情况下使用equality==bind,call,apply的区别动画理解引入原型链(是否解决继承问题)我喜欢跨域linux的理解754介绍了冒泡排序、选择排序、冒泡排序的介绍如何优化transform动画以及直接使用left和top换位置的优缺点如何判断链表是否有环介绍二进制的特点searchtreeobserver和publish-subscribe有什么区别react异步渲染的概念,引入TimeSlicing和Suspense16.Xstatementcycle的变化16.X中,props会在哪个生命周期发生变化?介绍纯函数前端性能优化pureComponent和FunctionComponent的区别,介绍JSX如何在Android和IOS上适配RN。为什么RN可以在native.js中绘制为原生组件(bundle.js)。介绍如何在虚拟DOM中设计一个localStorage来保证数据的有效性。如何设计Promise.all()子组件sum(2,3)实现sum(2)(3)的效果react性能优化如何比较两个对象挖掘JS的原型变量作用域链call,apply的区别andbind防抖和节流的区别介绍各种异步方案react生命周期介绍fiber前端性能优化介绍DOMtreevs.keyinreact如何设计状态树介绍css,xsrfhttp缓存控制项目如何应用数据结构如何解决优化shouldComponentUpdate的问题?道具太深的问题如何解决?没有pm2如何做进程管理沪江介绍如何解决浏览器跨域的跨域问题如何防范跨域攻击的安全问题使用Async需要注意什么Async中有多个await请求,如何才能是否优化(请求是否有依赖)处理失败时Promise和Async有什么区别对应的生命周期做什么当遇到性能问题,一般在哪个生命周期解决如何做性能优化(异步加载组件...)acomponent))引入事件代理,主要解决前端开发用到哪些设计模式,React/Redux用到哪些功能的问题?什么样的,怎么处理?如何组织CSS(Webpack)?你饿了吗?小程序可以打开多少个页面?React子组件和父组件之间如何传值?components有什么区别一个对象数组,每个子对象包含一个id和name,React如何渲染写在哪个生命周期的所有名字,有些名字不存在,通过异步接口获取,rendering的时候怎么给key赋什么值,可以用index,id还是index?[x]如何配置webpack与sass以及需要哪些加载器[x]如何配置CSS需要哪些加载器?将js、css、html单独打包成一个文件[x]div垂直水平居中(flex,绝对定位)有两个元素块,一左一右,距离为10像素中间和固定的顶部和底部。如何实现中间的滚动布局[1,2,3,4,5]变成[1,2,3,a,b,5]取数组的最大值(ES5,ES6)有什么区别在申请和打电话之间?ES5和ES6有什么区别?some、every、find、filter、map和forEach之间有什么区别?每次返回的值都不一样。如何找到0-5、95-99的随机数。页面上有10,000个按钮。如何绑定事件?(JS原生操作DOM)循环绑定时索引是什么,为什么,页面上有input,还有p标签,怎么解决。更改输入后,p标签将相应更改。如何处理监听输入的哪个事件,在哪里?触发携程手写两道算法题对React的看法,有没有遇到坑对闭包的看法,为什么要用闭包手写数组去重函数手写数组扁平化函数Promise的目的和性质介绍Promise和CallbackReact有什么区别lifecycle喜马拉雅ES6新特性介绍componentWillReceiveProps的触发条件是什么?React16.3对生命周期的改变。介绍React的Filber架构。绘制Filber渲染树。介绍React高级组件如何在父子组件之间进行通信。网站SEO如何应对介绍一下什么是HTTP状态码403、301、302是Cache相关的HTTP请求头你知道什么?介绍数字签名的原理。前后端通信采用什么方案?RESTful常用方法介绍跨域Access-Control-Allow-Origin服务器上哪里配置csrf跨站攻击前后端如何解决如何连接调整localStorage和cookies有什么区别CSS选择器的盒模型是什么,标准情况和IE的区别缺点如何实现适配H5手机rem和flex的区别(rootem)em和px的区别如何去掉#号React语句循环中如何去掉url中的#Redux状态管理器和挂载到窗口的变量有什么区别?webpack和gulp优缺点如何实现异步加载如何实现分模块打包(多入口)前端性能优化(1jscss;2图片;3缓存预加载;4ssr;5多域加载;6负载balancing)最大并发请求资源数(6)为什么base64可以提高性能,缺点介绍webp这种图片文件格式介绍koa2Promise如何实现异步请求,低版本fetch如何适配ajax如何处理跨域CORS如何设置jsonp为什么不支持post方法引入同源策略React使用介绍Immuable,Redux的全过程,介绍原型链如何继承自WeDoctor,介绍JS数据类型,基本数据类型和引用数据类型的区别。Array是Object类型吗?数据类型存在于何处?vara={name:"前端开发"};变量b=a;a=null那么b输出什么vara={b:1}存放在哪里vara={b:{c:1}}存放在栈堆区不要忘记垃圾回收时栈和堆的区别。数组中有100,000个数据。第一个元素和第100,000个元素之间的时间差是多少?使用场景JS如何实现异步和异步Promise在整个执行周期的三种状态Async/Await是如何实现Promise和setTimeout的区别的?JS执行过程中有哪些阶段lexicalscope和this的区别通常如何做继承深拷贝和浅拷贝loadsh深拷贝实现原理ES6中letblockscope是如何实现的React中setState之后发生什么是setState?为什么setState默认是异步的?setState什么时候同步?三大框架出现后,为什么会出现很多原生(RN)框架(虚拟DOM)?虚拟DOM主要做什么?什么是虚拟DOM本身?Hash码生成的随机值怎么会有相同的情况,如何避免[x]使用webpack构建时做一些自定义操作?[x]webpack对a和b两个按钮做了什么,点击aba,返回顺序可能是baa,如何保证是aba(Promise.then)节点接口转发,是否做优化节点启动服务,如何保证稳定性,平缓降级,重启等。RN是不是在做热加载?RN遇到的兼容性问题如何实现一个原生组件RNmixednative和nativemixedRN有什么区别?如何在终端上运行RN调用一些原生函数。RN的缺点介绍。介绍排序算法和快速排序原理。堆和栈的区别。闭包介绍。闭包闭包的核心是什么?介绍DNS解析和用TLS的JS继承方式介绍垃圾回收cookie的引用为了解决cookie和localStorage的区别是什么问题如何解决跨域问题前端性能优化如何将babytree组织成通用组件时使用canvas绘图formData和原生ajax有什么区别区别介绍表单提交和formData的关系介绍redux访问流程rudux和全局管理(数据可控,数据响应)的区别RN和原生通信介绍如何MVP整理介绍异步解决方案pro如何实现misethenprocesskoa2中间件原理通用中间件服务器如何做统一状态处理如何优化相对路径参考节点文件搜索优先级npm2和npm3+有什么区别海康威视knex连接数据库响应回调介绍异步解决方法如何处理异常抓项目如何管理模块前端性能优化JS继承方案如何判断一个变量是否为数组变量a和b,如何交换事件委托array-likedom-like数组的区别以及如何将其转化为数组单页应用和多页应用介绍Redux状态树管理介绍localstorageAPI蘑菇街HTML语义理解的区别闭包的理解ClosureinengineeringPackageUsageScenarios这个和Prototype介绍使用Prototype的最大好处React设计思想为什么VirtualDOM在React中优于RealDOM常用通信方式Redux整体工作流程Redux和全局对象的区别Redux数据回溯设计思想单例、工厂,观察者项目中的实际场景项目中树的使用场景及工作收获的理解库家乐react生命周期react性能优化添加nativeevents并没有移除为什么会出现内存泄漏,哪里会出现内存泄漏setInterval需要注意的点Timer为什么会不准确?setTimeout(1)和setTimeout(2)的区别宏任务和微任务介绍在promise和then中执行有什么区别?pureComponet简介。函数组件简介。类和ES5以及它们的区别。箭头函数与普通函数的区别介绍。defineProperty方法介绍。什么时候需要使用for..in和object.keys?React15和16.x的区别React15和16.x的区别React15和16.x重渲染做什么什么方法会触发react重渲染State和props触发更新生命周期setState有什么区别是同步的还是同步的asynchronous无状态组件的理解ReduxWorkflow介绍ES6函数let、const和var区别浅拷贝和深拷贝区别介绍箭头函数this介绍Promise然后介绍快速排序算法:topK最大元素海风教育onreact视图,其优点和缺点,使用过程中遇到的问题,以及如何解决。React是什么概念(使用函数式编程进行页面渲染)JS的范式语言是什么(面向对象或函数式编程)koa原理,为什么要使用koa(express和koa的比较),ES6使用的koa中间件使用语法Promise和async/await和回调。Promise的区别没有解决异步问题(promise链是一个真正强大的地方)Promise和setTimeout的区别(EventLoop)进程和线程的区别(一个节点实例是一个进程,节点是一个单线程,通过事件循环实现异步)介绍DFS深度优先介绍观察者模式使用的数据结构观察者模式(无序,是列表)交流我的Github链接如下,欢迎Starhttp://github.com/yygmind/blog我是网易高级前端工程师穆一扬,每周关注我一次前端面试。接下来,就让我带你走进高级前端的世界,在进阶的路上,互相勉励!如果想进群讨论每次面试的知识点,公众号可以回复【加群】