【面试】2018大厂高级前端面试题汇总
阿里
-
使用过的koa2中间件
-
koa-body原理
-
介绍自己写过的中间件
-
有没有涉及到cluster
-
介绍pm2
-
master挂了的话pm2怎么处理
-
如何和mysql进行通信
-
react声明周期及自己的理解
-
如何配置react-router
-
路由的动态加载模块
-
服务端渲染ssr
-
介绍路由的history
-
介绍redux数据流的流程
-
redux如何实现多个组件之间的通信,多个组件使用相同状态如何进行管理
-
多个组件之间如何拆分各自的state,每块小的组件有自己的状态,它们之间还有一些公共的状态需要维护,如何思考这块
-
使用过的redux中间件
-
如何解决跨域的问题
-
常见http请求头
-
移动端适配1px的问题
-
介绍flex布局
-
其他css方式设置垂直居中
-
居中为什么要使用transform(为什么不使用marginleft/top)
-
使用过webpack里面哪些plugin和loader
-
webpack里面的插件是怎么实现的
-
dev-server是怎么跑起来
-
项目优化
-
抽取公共文件是怎么配置的
-
项目中如何处理安全问题
-
怎么实现this对象的深拷贝
网易
-
介绍redux,主要解决什么问题
-
文件上传如何做断点续传
-
表单可以跨域吗
-
promise、async有什么区别
-
搜索请求如何处理(防抖)
-
搜索请求中文如何请求
-
介绍观察者模式
-
介绍中介者模式
-
观察者和订阅-发布的区别,各自用在哪里
-
介绍react优化
-
介绍http2.0
-
通过什么做到并发请求
-
http1.1时如何复用tcp连接
-
介绍service worker
-
介绍css3中position:sticky
-
redux请求中间件如何处理并发
-
介绍promise,异常捕获
-
介绍position属性包括css3新增
-
浏览器事件流向
-
介绍事件代理以及优缺点
-
react组件中怎么做事件代理
-
react组件事件代理的原理
-
介绍this各种情况
-
前端怎么控制管理路由
-
使用路由时出现问题如何解决
-
react怎么做数据的检查和变化
滴滴
-
react-router怎么实现路由切换
-
react-router里的
<link>
标签和<a>
标签有什么区别 -
<a>
标签默认事件禁掉之后做了什么才实现了跳转 -
react层面的性能优化
-
整个前端性能提升大致分几类
-
import { button } from 'antd'
,打包的时候只打包button
,分模块加载,是怎么做到的 -
使用
import
时,webpack
对node_modules
里的依赖会做什么 -
js异步解决方案的发展历程以及优缺点
-
http报文的请求会有几个部分
-
cookie
放哪里,cookie
能做的事情和存在的价值 -
cookie
和token
都存放在header
里面,为什么只劫持前者 -
cookie
和session
有哪些方面的区别 -
react
中dom
结构发生变化后内部经历了哪些变化 -
react
挂载的时候有3个组件,textcomponent、composecomponent、domcomponent,区别和关系,dom结构发生变化时怎么区分data的变化,怎么更新,更新怎么调度,如果更新的时候还有其他任务存在怎么处理 -
key主要是解决哪一类的问题,为什么不建议用索引index(重绘)
-
redux中异步的请求怎么处理
-
redux中间件是什么东西,接受几个参数(两端的柯里化函数)
-
柯里化函数两端的参数具体是什么东西
-
中间件是怎么拿到store和action,然后怎么处理
-
state是怎么注入到组件的,从reducer到组件经历了什么样的过程
-
koa中response.send、response.rounded、response.json发生了什么事,浏览器为什么能识别到它是一个json结构或是html
-
koa-bodyparser怎么来解析request
-
webpack整个生命周期,loader和plugin有什么区别
-
介绍ast(abstract syntax tree)抽象语法树
-
安卓activity之间数据是怎么传递的
-
安卓4.0到6.0过程中webview对js兼容性的变化
-
webview和原生是如何通信
-
跨域怎么解决,有没有使用过apache等方案
今日头条
-
对async、await的理解,内部原理
-
介绍下promise,内部实现
-
清除浮动
-
定位问题(绝对定位、相对定位等)
-
从输入url到页面加载全过程
-
tcp3次握手
-
tcp属于哪一层(1 物理层 -> 2 数据链路层 -> 3 网络层(ip)-> 4 传输层(tcp) -> 5 应用层(http))
-
redux的设计思想
-
接入redux的过程
-
绑定connect的过程
-
connect原理
-
webpack介绍
-
== 和 ===的区别,什么情况下用相等==
-
bind、call、apply的区别
-
动画的了解
-
介绍下原型链(解决的是继承问题吗)
-
对跨域的了解
有赞
-
linux 754 介绍
-
介绍冒泡排序,选择排序,冒泡排序如何优化
-
transform动画和直接使用left、top改变位置有什么优缺点
-
如何判断链表是否有环
-
介绍二叉搜索树的特点
-
介绍暂时性死区
-
es6中的map和原生的对象有什么区别
-
观察者和发布-订阅的区别
-
react异步渲染的概念,介绍time slicing 和 suspense
-
16.x声明周期的改变
-
16.x中props改变后在哪个生命周期中处理
-
介绍纯函数
-
前端性能优化
-
purecomponent和functioncomponent区别
-
介绍jsx
-
如何做rn在安卓和ios端的适配
-
rn为什么能在原生中绘制成原生组件(bundle.js)
-
介绍虚拟dom
-
如何设计一个localstorage,保证数据的实效性
-
如何设计promise.all()
-
介绍高阶组件
-
sum(2, 3)实现sum(2)(3)的效果
-
react性能优化
-
两个对象如何比较
挖财
-
js的原型
-
变量作用域链
-
call、apply、bind的区别
-
防抖和节流的区别
-
介绍各种异步方案
-
react生命周期
-
介绍fiber
-
前端性能优化
-
介绍dom树对比
-
react中的key的作用
-
如何设计状态树
-
介绍css,xsrf
-
http缓存控制
-
项目中如何应用数据结构
-
native提供了什么能力给rn
-
如何做工程上的优化
-
shouldcomponentupdate
是为了解决什么问题 -
如何解决props层级过深的问题
-
前端怎么做单元测试
-
webpack生命周期
-
webpack打包的整个过程
-
常用的plugins
-
pm2怎么做进程管理,进程挂掉怎么处理
-
不用pm2怎么做进程管理
沪江
-
介绍下浏览器跨域
-
怎么去解决跨域问题
-
jsonp方案需要服务端怎么配合
-
ajax发生跨域要设置什么(前端)
-
加上cors之后从发起到请求正式成功的过程
-
xsrf跨域攻击的安全性问题怎么防范
-
使用async会注意哪些东西
-
async里面有多个await请求,可以怎么优化(请求是否有依赖)
-
promise和async处理失败的时候有什么区别
-
redux在状态管理方面解决了react本身不能解决的问题
-
redux有没有做过封装
-
react生命周期,常用的生命周期
-
对应的生命周期做什么事
-
遇到性能问题一般在哪个生命周期里解决
-
怎么做性能优化(异步加载组件...)
-
写react有哪些细节可以优化
-
react的事件机制(绑定一个事件到一个组件上)
-
介绍下事件代理,主要解决什么问题
-
前端开发中用到哪些设计模式
-
react/redux中哪些功能用到了哪些设计模式
-
js变量类型分为几种,区别是什么
-
js里垃圾回收机制是什么,常用的是哪种,怎么处理的
-
一般怎么组织css(webpack)
饿了么
-
小程序里面开页面最多多少
-
react子父组件之间如何传值
-
emit事件怎么发,需要引入什么
-
介绍下react高阶组件,和普通组件有什么区别
-
一个对象数组,每个子对象包含一个id和name,react如何渲染出全部的name
-
在哪个生命周期里写
-
其中有几个name不存在,通过异步接口获取,如何做
-
渲染的时候key给什么值,可以使用index吗,用id好还是index好
-
webpack如何配sass,需要配哪些loader
-
配css需要哪些loader
-
如何配置把js、css、html单独打包成一个文件
-
div垂直水平居中(flex、绝对定位)
-
两个元素块,一左一右,中间相距10像素
-
上下固定,中间滚动布局如何实现
-
[1, 2, 3, 4, 5]变成[1, 2, 3, a, b, 5]
-
取数组的最大值(es5、es6)
-
apply和call的区别
-
es5和es6有什么区别
-
some、every、find、filter、map、foreach有什么区别
-
上述数组随机取数,每次返回的值都不一样
-
如何找0-5的随机数,95-99呢
-
页面上有1万个button如何绑定事件
-
如何判断是button
-
页面上生成一万个button,并且绑定事件,如何做(js原生操作dom)
-
循环绑定时的index是多少,为什么,怎么解决
-
页面上有一个input,还有一个p标签,改变input后p标签就跟着变化,如何处理
-
监听input的哪个事件,在什么时候触发
携程
-
对react看法,有没有遇到一些坑
-
对闭包的看法,为什么要用闭包
-
手写数组去重函数
-
手写数组扁平化函数
-
介绍下promise的用途和性质
-
promise和callback有什么区别
-
react生命周期
-
两道手写算法题
喜马拉雅
-
es6新的特性
-
介绍promise
-
promise有几个状态
-
说一下闭包
-
react的生命周期
-
componentwillreceiveprops的触发条件是什么
-
react16.3对生命周期的改变
-
介绍下react的filber架构
-
画filber渲染树
-
介绍react高阶组件
-
父子组件之间如何通信
-
redux怎么实现属性传递,介绍下原理
-
react-router版本号
-
网站seo怎么处理
-
介绍下http状态码
-
403、301、302是什么
-
缓存相关的http请求头
-
介绍https
-
https怎么建立安全通道
-
前端性能优化(js原生和react)
-
用户体验做过什么优化
-
对pwa有什么了解
-
对安全有什么了解
-
介绍下数字签名的原理
-
前后端通信使用什么方案
-
restful常用的method
-
介绍下跨域
-
access-control-allow-origin在服务端哪里配置
-
csrf跨站攻击怎么解决
-
前端和后端怎么联调
兑吧
-
localstorage和cookie有什么区别
-
css选择器有哪些
-
盒子模型,以及标准情况和ie下的区别
-
如何实现高度自适应
-
prototype和
——proto——
区别 -
_construct
是什么 -
new
是怎么实现的 -
promise的精髓,以及优缺点
-
如何实现h5手机端的适配
-
rem
、flex
的区别(root em) -
em
和px
的区别 -
react声明周期
-
如何去除url中的#号
-
redux状态管理器和变量挂载到window中有什么区别
-
webpack和gulp的优缺点
-
如何实现异步加载
-
如何实现分模块打包(多入口)
-
前端性能优化(1js css;2 图片;3 缓存预加载; 4 ssr; 5 多域名加载;6 负载均衡)
-
并发请求资源数上限(6个)
-
base64为什么能提升性能,缺点
-
介绍webp这个图片文件格式
-
介绍koa2
-
promise如何实现的
-
异步请求,低版本fetch如何低版本适配
-
ajax如何处理跨域
-
cors如何设置
-
jsonp为什么不支持post方法
-
介绍同源策略
-
react使用过的一些组件
-
介绍immuable
-
介绍下redux整个流程原理
-
介绍原型链
-
如何继承
微医
-
介绍js数据类型,基本数据类型和引用数据类型的区别
-
array是object类型吗
-
数据类型分别存在哪里
-
var a = {name: "前端开发"}; var b = a; a = null
那么b输出什么 -
var a = {b: 1}
存放在哪里 -
var a = {b: {c: 1}}
存放在哪里 -
栈和堆的区别
-
垃圾回收时栈和堆的区别
-
数组里面有10万个数据,取第一个元素和第10万个元素的时间相差多少
-
栈和堆具体怎么存储
-
介绍闭包以及闭包为什么没清除
-
闭包的使用场景
-
js怎么实现异步
-
异步整个执行周期
-
promise的三种状态
-
async/await怎么实现
-
promise和settimeout执行先后的区别
-
js为什么要区分微任务和宏任务
-
promise构造函数是同步还是异步执行,then呢
-
发布-订阅和观察者模式的区别
-
js执行过程中分为哪些阶段
-
词法作用域和this的区别
-
平常是怎么做继承
-
深拷贝和浅拷贝
-
loadsh深拷贝实现原理
-
es6中
let
块作用域是怎么实现的 -
react中
setstate
后发生了什么 -
setstate
为什么默认是异步 -
setstate
什么时候是同步的 -
为什么3大框架出现以后就出现很多native(rn)框架(虚拟dom)
-
虚拟dom主要做了什么
-
虚拟dom本身是什么(js对象)
-
304是什么
-
打包时hash码是怎么生成的
-
随机值存在一样的情况,如何避免
-
使用webpack构建时有无做一些自定义操作
-
webpack做了什么
-
a,b两个按钮,点击aba,返回顺序可能是baa,如何保证是aba(promise.then)
-
node
接口转发有无做什么优化 -
node
起服务如何保证稳定性,平缓降级,重启等 -
rn有没有做热加载
-
rn遇到的兼容性问题
-
rn如何实现一个原生的组件
-
rn混原生和原生混rn有什么不同
-
什么是单页项目
-
遇到的复杂业务场景
-
promise.all实现原理
寺库
-
介绍promise的特性,优缺点
-
介绍redux
-
rn的原理,为什么可以同时在安卓和ios端运行
-
rn如何调用原生的一些功能
-
介绍rn的缺点
-
介绍排序算法和快排原理
-
堆和栈的区别
-
介绍闭包
-
闭包的核心是什么
-
网络的五层模型
-
http和https的区别
-
https的加密过程
-
介绍ssl和tls
-
介绍dns解析
-
js的继承方法
-
介绍垃圾回收
-
cookie的引用为了解决什么问题
-
cookie和localstorage的区别
-
如何解决跨域问题
-
前端性能优化
宝宝树
-
使用canvas绘图时如何组织成通用组件
-
formdata和原生的ajax有什么区别
-
介绍下表单提交,和formdata有什么关系
-
介绍redux接入流程
-
rudux和全局管理有什么区别(数据可控、数据响应)
-
rn和原生通信
-
介绍mvp怎么组织
-
介绍异步方案
-
promise如何实现then处理
-
koa2中间件原理
-
常用的中间件
-
服务端怎么做统一的状态处理
-
如何对相对路径引用进行优化
-
node文件查找优先级
-
npm2和npm3+有什么区别
海康威视
-
knex连接数据库响应回调
-
介绍异步方案
-
如何处理异常捕获
-
项目如何管理模块
-
前端性能优化
-
js继承方案
-
如何判断一个变量是不是数组
-
变量a和b,如何交换
-
事件委托
-
多个<li>标签生成的dom结构是一个类数组
-
类数组和数组的区别
-
dom的类数组如何转成数组
-
介绍单页面应用和多页面应用
-
redux状态树的管理
-
介绍localstorage的api
蘑菇街
-
html语义化的理解
-
<b>
和<strong>
的区别 -
对闭包的理解
-
工程中闭包使用场景
-
介绍this和原型
-
使用原型最大的好处
-
react设计思路
-
为什么虚拟dom比真实dom性能好
-
react常见的通信方式
-
redux整体的工作流程
-
redux和全局对象之间的区别
-
redux数据回溯设计思路
-
单例、工厂、观察者项目中实际场景
-
项目中树的使用场景以及了解
-
工作收获
酷家乐
-
react生命周期
-
react性能优化
-
添加原生事件不移除为什么会内存泄露
-
还有哪些地方会内存泄露
-
setinterval需要注意的点
-
定时器为什么是不精确的
-
settimeout(1)和settimeout(2)之间的区别
-
介绍宏任务和微任务
-
promise里面和then里面执行有什么区别
-
介绍purecomponet
-
介绍function component
-
react数据流
-
props和state的区别
-
介绍react context
-
介绍class和es5的类以及区别
-
介绍箭头函数和普通函数的区别
-
介绍defineproperty方法,什么时候需要用到
-
for..in 和 object.keys的区别
-
介绍闭包,使用场景
-
使用闭包特权函数的使用场景
-
get和post有什么区别
百分点
-
react15/16.x的区别
-
重新渲染render会做些什么
-
哪些方法会触发react重新渲染
-
state和props触发更新的生命周期分别有什么区别
-
setstate是同步还是异步
-
对无状态组件的理解
-
介绍redux工作流程
-
介绍es6的功能
-
let、const以及var的区别
-
浅拷贝和深拷贝的区别
-
介绍箭头函数的this
-
介绍promise和then
-
介绍快速排序
-
算法:前k个最大的元素
海风教育
-
对react看法,它的优缺点
-
使用过程中遇到的问题,如何解决的
-
react的理念是什么(拿函数式编程来做页面渲染)
-
js是什么范式语言(面向对象还是函数式编程)
-
koa原理,为什么要用koa(express和koa对比)
-
使用的koa中间件
-
es6使用的语法
-
promise 和 async/await 和 callback的区别
-
promise有没有解决异步的问题(promise链是真正强大的地方)
-
promise和settimeout的区别(event loop)
-
进程和线程的区别(一个node实例就是一个进程,node是单线程,通过事件循环来实现异步)
-
介绍下dfs深度优先
-
介绍下观察者模式
-
观察者模式里面使用的数据结构(不具备顺序 ,是一个list)
本文转子 muyiyang_gaoji 微信分享 版权归原创作者。