大前端面试题
试题一
- 原生js怎么实现拖放
- react-dnd拖放的核心API
- react diff 算法复杂度是多少
- diff造成的非预期更新如何解决
- 如何实现路由监听
- 页面适配方案:百分比,flex,vh,vw
- 平时对js和css基础有过了解吗
- 从地址栏输入地址到页面回显,都发生了什么
- 解释下重绘和回流
- 说一下js中的类和java中的类的区别
- 说一下js中如何实现函数重载
- webpack动态加载
试题二
- node偏运维方向的有没有了解过(docker k8s)
- 业务中主要用node干了什么
- react生命周期有了解吗
- 说下react-router源码你看完后印象深刻的部分
- 数组去重怎么实现,不用set怎么实现
- 实现一下es6的extends
- 有没有接触过移动端,小程序,h5等方向
试题三
- js数据类型和存储方式,如何判断
- typeof [] 返回什么
- new操作符 做了什么
- 数组中一万个数据,访问第一个和最后一个效率会有什么差异,为什么
- forEach for in for of 的差异
- 如何改变this指向
- js中函数是如何调用的
- 说下原型和继承
- 浏览器缓存
- 说下浏览器事件循环
- js是单线程还是多线程,为什么这么设计
- css弧形永动动画实现
- css 1px像素适配
- css设置div宽高比3:4 padding-bottom:75%
- 说下transform 和transition
- 类数组怎么转换成数组
- new Array()接收的参数是什么
- get和post的区别
- http状态码
- react生命周期
- setState更新是同步还是异步
- axios源码整体架构
- 手写Promise.all
- Promise中用了什么设计模式
- Promise都有哪些状态
- 算法12345678.01 =>123,456,78.01
- 算法12345678.01=>12,345,678.01
- 从地址栏输入地址到页面回显,都发生了什么
试题四
- 业务中你用node都做了什么
- 你对node还有什么想分享的吗,觉得用起来爽的部分(gzip pipe)
- 业务中数据是怎么存储的,node为什么没有接入数据库
- node单线程容易崩溃,怎么维护服务的
- pm2内部机制了解吗
- cluster了解多少
- 业务线如何用端口号区分(nginx http-proxy)
- 业务上有什么坑嘛 (环境多)
- webpack常用配置
- webpack插件写过吗
- webpack常用插件
- 关于webpack你还有什么想分享的吗 (同步加载异步加载的实现)
- 浏览器地址栏输入请求地址到页面回显发生了什么
- 重绘和重排了解吗
- 重绘和重排如何做取舍
- 如何将css内容插入到页面上(style-loader)
- 如果让你实现style-loader,你打算怎么做
- 算法题-手写快排
- 算法题-查找一个字符串中出现次数最多的字符
- 算法复杂度层面比较一下快排和其他排序
- 项目是内部使用吗 (是,未开源)
- 有没有考虑过高并发场景,如何解决(缓存,压缩,负载均衡,集群)
- 现在是在职状态吗
- 最后离职日期是多少
- 手上有没有其他offer
- 如果今晚三面是否有时间(说有上线,推迟了)
- 反问一:百度App部门有没有使用node的场景
- 反问二:App部门是不是只有移动端场景,有没有其他的,比如pc
- 反问三:百度怎么做容灾的
- 反问四:百度App是分工明确还是也会出现身兼多职的情况
- 反问五:给我一个今后学习发展的建议和这次面试的简单评价
试题五
- 业务中数据是怎么存储的
- 业务中拖拽如何控制位置的,适配怎么处理,全屏怎么控制
- 你用nodejs和java分别做了哪些业务
- 业务中的缩略图是什么,实现方案
- 说下jwt
- 说下js中数据存储方式
- 知道内存碎片怎么产生的吗 v8
- post请求有几种方式触发
- post的ContentType类型有哪些(application/x-www-form-urlencoded/multipart/form-data/text/plain)
- 知道jwt有哪些缺点吗
- 说一下http和https的区别
- https的tls了解吗
- 说一下锁(懵逼),举例是读锁和写锁
- 为什么要去看axios的源码,大体实现
- 业务中权限是怎么接入的,数据表怎么划分的
- 能说一下css盒模型吗
- 说下box-sizing中border-box 和content-box的区别
- this指向
试题六
- 说下上线部署流程中常用的linux命令
- node的进程守护怎么做的,发现非预期故障怎么排查
- 项目中为什么选择用nodejs
- 业务中负责哪些部分
- 手写一个koa2的compose
- 手写一个Scheduler类,实现并发控制
试题七
- 说一下进程线程,如何通信?
- 两个线程可以直接通信吗
- 你觉得node的适用场景是什么
- 相比其他后台语言,为什么你更倾向node?
- 在业务开发上,你觉得node和java的区别是什么?
- node服务的性能监测有没有了解过?
- http中间人劫持了解吗?如何解决呢?(说了https)
- 为什么https可以做到避免中间人劫持?(说了加密层tls)
- 展开说一下tls握手(对称,非对称,对称+非对称的组合)
- 加密套件指的是?(举例了AES)
- 业务中的安全问题有没有遇到过?怎么解决的?(说了base64,cors,xss,csrf,cookie的httponly和samesite属性)
- 你倾向的技术领域和业务场景是怎样的?
- 算法1:二叉树层序遍历和s形的层序遍历
- 算法2:如何在从左到右升序,从上到下升序,每一行第一个元素大于上一行最后一个元素的二维数组中查找某个数字的索引?如果是一维数组呢?
- 算法3:二分法的实现
- 算法4:单链表反转
试题八
- 为什么坚持用node
- 算法1:promise并发控制
- 算法2:前k个元素
- js中遍历数组的方式
- react中遇到的坑,怎么解决的
- 说一下类组件和函数组件
- 选择hooks的优点
- 什么时候用类组件
- 说下http缓存,如何实现
试题九
- react diff算法如何实现的,比对复杂度是多少
- 如何使用react-dnd完成拖放的,说下主要API
- 大数据量场景前端怎么处理,让页面展示尽可能流畅
- 业务中看你有涉及到node的文件读写操作,有没有想过如果某个文件被锁怎么处理?
- 前端缩略图(截图)方案是什么
- 业务中的实时保存会有性能开销,又没有做什么优化?
- node转buffer输出字符串会比直接string输出快,你的依据是什么?
- 算法一:给定一串数字,求它全排列结果
- 算法二:实现类似百度那种联想搜索(模糊匹配)
试题十
- 写个继承案例
- Object.create实现
- Object.create传null和{} 有啥区别吗
- 手写promise(写完then后面试官说可以了)
- 实现一个数组扁平化方法flat
- js为什么设计成单线程
- 事件循环说一下
- Promise里都是微任务吗
- 平时怎么学习的
- koa2中间件和redux中间件比较,原理
- koa2的洋葱模型和redux中间件的洋葱模型一样吗
- 两个compose的大概实现,reduce的妙用
- 对比一下express,koa2(我连同比较了egg)
- 为什么不要在循环、条件语句或者嵌套方法中调用Hooks
- new Promise返回的实例和实例then方法执行后返回的promise是一个吗
试题十一
- 说一下为什么要用hooks,解决了什么问题
- react函数组件和类组件触发更新的方式有哪些
- react的强制更新有了解吗
- react在一秒内点击按钮多次(+1),如何获取最后一次的新状态
- react-router权限路由写一下
- 实现一个带缓存的求阶乘函数
- 说说你对koa2中间件的理解
- 某些接口允许跨域,某些不允许,如何实现?能不能使用koa2中间件的方式实现一下?
- koa2中ctx.set的等价写法
- 用node如何实现一个带压缩和缓存的http-server?
试题十二
- 项目中常用的linux命令
- 业务中打包怎么做的
- 如何查询某个进程占用的端口号(linux中) netstat -tunlp|grep 80 lsof -i:80
- 实现一个new操作符
- git reset 和git rebase了解吗
- 实现Object.create
- 实现数组扁平化函数flat
- webpack有哪些优化方案
- loader和plugin有写过吗
- react合成事件了解吗?
- 这些事件处理函数最终挂载到了哪?
- react中如何阻止冒泡
- react中setState同步还是异步
- react15和react16更新机制的差异
- 为什么react16架构升级后就能中断更新,根据什么决定是否中断
- react源码看过哪些?
- react中调和的部分是在哪个包?有看过实现吗
- hooks为什么不能在条件或循环中使用,原理清楚吗?
- react为什么要引入hooks,解决了哪些问题
- 类组件如何实现逻辑复用?
试题十三
- js为什么会有回调地狱呢
- 为什么java没有回调地狱
- promise.all返回的是什么
- promise和async你觉得差异点是什么
- 算法1:rgb转16进制函数
试题十四
- koa-compose实现
- react权限路由实现
- 前端路由实现原理(对比react,vue)
- 单页面应用和传统服务端渲染的差异比较
- 前端页面性能优化
- nginx 负载均衡配置
- node端处理大文件上传
- react hooks用过哪些
- react使用心得
- redux模板语法的改良(使用装饰器)
- 聊一下代码检查(eslint,ts)
- 防抖节流区分,手写
- 实现map,reduce
- 统计字符串中次数最多字母