【前端面试题】2018 各大公司最近面试题

37次阅读

共计 6843 个字符,预计需要花费 18 分钟才能阅读完成。

【前端面试题】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> 标签和标签有什么区别

标签默认事件禁掉之后做了什么才实现了跳转
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 语义化的理解
和的区别
对闭包的理解
工程中闭包使用场景
介绍 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)

正文完
 0