手记

前端面试2021-012

1、什么是代码的review操作?一般由谁进行代码的review?怎么进行review?

代码的review操作,主要包含代码评审工作和代码复盘工作
一般都是由小组组长或者带自己的同事主导执行的,平时开发项目过程中自己也可以执行代码的单元review操作
review的操作区分为通过软件工具的自动执行操作和人工操作两部分,软件工具的自动化操作主要是通用性审核,人工操作部分主要是项目定制化规范和流程审核以及代码复盘

2、git rebase的作用是什么?什么时候需要执行该命令?

git rebase是一个非常常用的操作命令,很多时候能简化和避免一些BUG的产生
作用主要有两方面,第一方面作为开发人员本地仓库的版本树/版本记录非常繁琐和复杂的,可以通过rebase命令将本地多次提交记录进行合并,然后推送到远程仓库,让远程仓库的版本树/版本记录比较干净和简洁;第二方面在多分支开发模式下,如bug修复分支中出现了三个非常重要的版本修复记录,合并到dev开发分支时期望保留这三个修复记录的版本,此时可以通过rebase命令将多个提交版本从一个分支直接合并到另一个分支

3、git stash命令的作用是什么?什么时候需要执行该命令?

git stash命令主要用于版本提交历史中进行文件缓存使用的,用于临时存储暂存区文件
第一种情况下,当我们当前开发的项目代码还没有达到提交要求时,需要临时开发其他任务,此时可以将未开发完成的代码进行stash存储,等待临时任务结束后继续开发
第二种情况下,当我们出现了文件版本冲突的时候,可以通过stash临时存储当前冲突文件内容,保障项目版本正确性的前提下解决冲突,最终完成冲突的处理

4、var、let、const的区别?

var是原生javascript中声明变量的关键字
let是ES6中升级出现的声明变量的关键字,提供了块级作用域,出现了变量声明暂时性死区,限制了变量的多次声明等功能
const是ES6语法中提供的用于声明常量的关键字

5、使用箭头函数的注意事项有哪些?

箭头函数是ES6语法中出现的用于简化函数操作的一种新语法,使用的过程中需要注意内部this关键字的指向问题,需要注意语法中单个参数的简化语法,单行代码的情况下简化语法和返回值问题

6、Promise有几种状态?什么时候会执行catch代码块?

Promise执行过程中有三种状态,分别是pending、fulfilled、rejected状态,当出现rejected状态时就会执行catch代码块

7、使用解构赋值的操作语法,如何交换两个变量中的数据?

let a = 1, b = 2
[a, b] = [b, a]

8、call()、apply()和bind()有什么区别?

call/apply/bind都可以改变this的指向,区别是参数的操作形式不同

9、什么是错误优先的回调函数?

操作的回调函数包含很多参数,第一个参数是错误信息的回调函数!
为什么要做错误优先的处理?所有函数的执行,不论是正确结果还是错误结果,都是函数的返回结果,错误优先的处理能让函数中的执行流程第一时间处理错误信息,优化执行流程提高执行效率

10、为什么团队开发需要保障一致的编码风格?哪些工具可以实现该功能

提高代码风格的统一性,便于多人协同开发和后期维护
一般情况下代码质量检查工具都可以实现该功能,如前端开发中经常会遇到一些代码质量检查插件的操作,如JSLint、ESlint等等

11、什么是stub?什么时候使用stub

stub模式,主要适用于代码测试环境中的依赖模拟操作
开发人员进行单元测试或者测试人员进行集成测试时,如果需要频繁依赖其他的运行环境或者运行依赖,但是不能确保这些运行环境和运行依赖已经准备充分的情况下,可以使用stub方式进行环境和依赖的模拟,达到测试解耦合的目的!
如单元测试文件读写操作方式,但是为了保障目标文件不被数据污染,不能真实的发生文件读写操作,此时就可以借助stub方式模拟文件读写操作完成单元代码的测试工作

12、为什么说HTTP协议是无状态协议?无状态协议的优缺点是什么?如何解决这样的无状态问题?

HTTP协议在进行客户端和服务端的访问过程中,每次执行的请求一旦得到响应数据,客户端和服务端之间的连接就会断开,所以连接状态无法保持,所以将HTTP协议称为无状态协议;http无状态协议的优点是连接得到响应后直接断开,服务端可以使用这个断开的空闲连接去接入其他的客户端,在一定程度上服务端可以接入更多的客户端连接;缺点是连接状态无法保持就会导致每次连接都需要进行状态身份验证,更多的消耗了资源;要解决无状态的操作方式有很多种,可以通过会话跟踪的方式进行状态保持

13、 什么是Websocket协议?它的主要应用场景有哪些?

websocket协议是一种基于TCP协议的保持长连接的数据交互协议
主要用于客户端和服务端需要进行双向消息推送的场景,如客服应用、消息推送等等

14、阐述项目中遇到BUG时,你的处理思路?

拓展!
提示:git命令执行出现问题? 项目启动遇到问题?执行流程得到错误结果?执行代码报错?项目连接数据库出现问题?

1人推荐
随时随地看视频
慕课网APP