杭州 乐刻运动 校招 一面 已OC
2023-03-24 10:15
react 常用 hooks
redux 数据流
函数式编程 => 优点
- 主要的编程范式有三种:命令式编程,声明式编程和函数式编程
- 更好的管理状态:因为它的宗旨是无状态,或者说更少的状态,能最大化的减少这些未知、优化代码、减少出错情况
- 更简单的复用:固定输入->固定输出,没有其他外部变量影响,并且无副作用。这样代码复用时,完全不需要考虑它的内部实现和外部影响
- 更优雅的组合:往大的说,网页是由各个组件组成的。往小的说,一个函数也可能是由多个小函数组成的。更强的复用性,带来更强大的组合性
- 隐性好处。减少代码量,提高维护性
react 和 vue 的区别
虚拟 dom
vue 的数据劫持和双向绑定
前端设计模式
webpack 打包流程
- 识别入口文件:Webpack 根据配置文件中的 entry 属性来找到项目的入口文件。
- 解析模块依赖:Webpack 分析入口文件所依赖的所有模块,以及这些模块之间的依赖关系。
- 编译模块:Webpack 会把所有模块编译成浏览器可以识别的 JavaScript 代码。在编译模块时,Webpack 会根据模块类型选择相应的 loader 来进行处理。比如说,对于 CSS 模块,Webpack 会使用 CSS loader 和 style loader 进行处理。
- 输出打包后的文件:在编译完所有模块之后,Webpack 会把它们打包成一个或多个 bundle 文件。打包后的文件会根据配置文件中的 output 属性输出到指定的目录下。
- 最后,Webpack 会对打包后的文件进行优化,比如对代码进行压缩和混淆,以减小文件大小并提高加载速度。
hmr 的实现原理
- 当一个模块发生变化时,Webpack 会通过该模块的 ID,确定哪些模块需要更新,并构建新的模块。
- 在浏览器端,Webpack 的运行时会接收到来自服务器的更新通知,并根据更新通知重新加载发生变化的模块。
- 当浏览器完成模块的加载后,Webpack 会通过 HMR runtime API,卸载旧模块,并加载新模块。
- 在新模块加载完成后,Webpack 会调用 HMR runtime API,通知应用程序重新运行,以保持页面的状态和逻辑与最新的代码保持一致
webpack 和 vite 的区别
- 构建方式
- Webpack 采用了类似于静态的方式来构建应用程序。它会将所有的代码都打包到一个或多个文件中,然后在浏览器中加载这些文件。Webpack 需要先构建应用程序再启动服务器。
- Vite 则采用了基于浏览器原生 ES 模块的方式来构建应用程序。它通过浏览器原生的 import/export 语法实现模块化,并使用本地 HTTP 服务器提供开发环境。Vite 在启动时不需要先构建应用程序,而是在需要时即时编译并输出代码。
- 构建速度
- 由于 Webpack 的构建方式需要先将所有代码打包到文件中,因此在处理大型应用程序时,Webpack 的构建速度可能会比较慢。
- 相比之下,Vite 的基于浏览器原生 ES 模块的构建方式使得它的启动速度非常快,并且在处理大型应用程序时也可以更快地编译和输出代码。
- 热更新
- Webpack 和 Vite 都支持热更新,但是它们的实现方式不同。Webpack 的热更新是通过 HMR(Hot Module Replacement)实现的,而 Vite 的热更新则是基于浏览器原生的模块热更新实现的。由于 Vite 的构建方式可以更快地输出代码,因此 Vite 的热更新通常可以更快地更新应用程序的状态和逻辑。
- 配置方式
- Webpack 的配置方式相对复杂,需要开发人员深入了解它的配置项和插件,才能够灵活地配置应用程序的构建流程。相比之下,Vite 的配置方式相对简单,通常只需要一些简单的配置即可完成应用程序的构建。
- 构建方式
vite 的优点
promise 实现原理
深浅拷贝 => 实现一个深拷贝
防抖节流
原型链
事件循环
ts 的优点
http2.0 优点 => 3.0
tcp 和 udp 的区别
- 连接方式:TCP 是面向连接的协议,UDP 是无连接的协议。
- 可靠性:TCP 是一种可靠的协议,它提供了数据的完整性和有序性保证,可以检测数据是否传输成功并重传丢失的数据包;UDP 则是不可靠的协议,数据传输过程中不能保证数据的完整性和顺序性。
- 延迟:TCP 相对于 UDP 来说延迟较高,因为它需要在数据传输前进行三次握手建立连接,并且在数据传输过程中需要保证数据的完整性和有序性;UDP 则不需要建立连接和保证数据的完整性和有序性,因此延迟较低。
- 带宽利用率:TCP 的带宽利用率相对较低,因为它需要进行拥塞控制和流量控制;UDP 则可以充分利用带宽,因为它不进行拥塞控制和流量控制。
- 应用场景:TCP 适用于要求可靠传输的应用,例如文件传输、电子邮件等;UDP 适用于对实时性要求较高,但对可靠性要求不高的应用,例如音视频传输、网络游戏等。
开发一个 h5 的电商页面 技术选型
开发一个组件库考虑哪些方面
反问
- 前端:十几人
- 业务线
- c 端 原生 app vue 小程序 uni-app taro
- b 端 app RN 原生 webapp react 为主
- 中后台 react+umi
- 上下班时间: 9 - 6:30
- 四面: 一面 二面前端 leader 三面 CTO 四面 HR
二面 前端 leader
2023-03-27 9:30
- react 的 diff 算法
- key 的作用
- 深度优先遍历的优点和缺点
- JS 处理异步的方法
- promise 的优点和缺点
- async await 的优点和缺点
- 并发处理
- 三次握手四次挥手
反问
- 建议还要再加深一些基础
三面 CTO + HRBP
2023-03-28 14:00
输入一个url到浏览器渲染页面
异步加载如何渲染
RN => 没用过
前端布局 flex grid 双飞翼
布局实现原理
大学最有成就感的事
别人给你打的标签
加班
优胜劣汰
解决问题的能力
手里的offer
如何权衡↑
工作地点
如此多的应届生 你如何脱颖而出
加面
2023-04-03 14:00