• 400道阿里、头条、网易等19家大厂面经全部公开


    阿里

    • 使用过的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

    • 通过什么做到并发请求

    • Hhttp1.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的过程

    • 绑定Cconnect的过程

    • Cconnect原理

    • 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手机端的适配

    • Rrem、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)

  • 相关阅读:
    Ubuntu之修改用户名和主机名
    HM中CU,TU的划分
    BZOJ 3237([Ahoi2013]连通图-cdq图重构-连通性缩点)
    Introducing Regular Expressions 学习笔记
    kubuntu添加windows字体
    WISE安装程序增加注册控制
    Linux内核中常见内存分配函数(一)
    Linux内核中常见内存分配函数(二)
    Swift现实
    Android 5.0(L) ToolBar(替代ActionBar) 现实(四)
  • 原文地址:https://www.cnblogs.com/xiaoping1993/p/10711221.html
Copyright © 2020-2023  润新知