高级前端面试题大汇总(只有试题,没有答案)

4次阅读

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

面试题来源于网络,看一下高级前端的面试题,可以知道自己和高级前端的差距。有些面试题会重复。
使用过的 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 的区别

CSS3 动画的了解

介绍下原型链(解决的是继承问题吗)

对跨域的了解

Linux 754 介绍

介绍冒泡排序,选择排序,冒泡排序如何优化

transform 动画和直接使用 left、top 改变位置有什么优缺点

如何判断链表是否有环

介绍二叉搜索树的特点

介绍暂时性死区

ES6 中的 map 和原生的对象有什么区别

观察者和发布 - 订阅的区别

react 异步渲染的概念, 介绍 Time Slicing 和 Suspense

声明周期的改变

中 props 改变后在哪个生命周期中处理

介绍纯函数

前端性能优化

pureComponent 和 FunctionComponent 区别

介绍 JSX

如何做 RN 在安卓和 IOS 端的适配

RN 为什么能在原生中绘制成原生组件(bundle.js)

介绍虚拟 DOM

如何设计一个 localStorage,保证数据的实效性

如何设计 Promise.all()

介绍高阶组件

sum(2, 3) 实现 sum(2)(3) 的效果

react 性能优化

两个对象如何比较

JS 的原型

变量作用域链

防抖和节流的区别

介绍各种异步方案

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,如何交换

事件委托

多个标签生成的 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)

Vue 面试中,经常会被问到的面试题 /Vue 知识点整理 532 道前端真实大厂面试题学习 ES6 笔记──工作中常用到的 ES6 语法

正文完
 0