面试积累-3

186 阅读4分钟

前端小厂

2024-08-18

  1. 自我介绍

  2. 项目中扮演角色

  3. vue 组件间通信

    答:最常用: props、emit 父子

    vuex 全局的数据共享

    project、inject 组件间 父子、祖孙

    listenlisten attrs 祖先和孙子之间

    parentparent、children

    $refs

    EventBus

  4. 说一下 vuex

答:vuex 是一个数据管理器,vue 中的数据可以通过 vuex 的管理实现数据共享

在 state 定义数据

mutations 定义修改数据的方法

actions 执行异步操作

getter 获取数据

setter 修改数据

  1. git 冲突处理工具

答: 1. 命令行工具 git status、git diff、git mergetool 2. 编译器vscode

  1. git 管理模式

答: 集中式工作流(Centralized Workflow)

每个开发者从中央仓库 clone 仓库到本地。
开发者在本地工作并提交更改。
最终将更改 push 到中央仓库的主分支。

功能分支工作流(Feature Branch Workflow)

开发者从主分支(通常是 main 或 master)创建一个新的功能分支(feature-branch)。
在功能分支上进行开发并提交代码。
功能完成后,提交合并请求(Pull Request / Merge Request),通过代码审查后合并到主分支。

Gitflow 工作流

功能开发在 feature 分支上进行。
完成后,feature 分支合并到 develop。
发布前从 develop 创建 release 分支。
release 分支测试完成后合并到 master,并打标签。
任何紧急修复在 hotfix 分支上进行,完成后合并回 master 和 develop。

Forking 工作流

每个开发者从中央仓库 fork 出自己独立的仓库。
开发者在自己的仓库中创建分支进行开发。
功能完成后,开发者提交合并请求(Pull Request)到中央仓库进行代码审查。

7. git 未提交修改 bug (STUCK)

  1. 查看未提交的修改

    首先,使用 git status 检查有哪些文件包含未提交的修改。该命令会列出:
    已暂存的文件。
    未暂存但已修改的文件。
    新增的未追踪文件。
    
  2. 暂存未提交的修改

    如果你想保留未提交的修改,可以将它们暂存起来,避免丢失。
    使用 git add <file> 暂存特定文件。
    使用 git add . 暂存所有已修改的文件。  
    暂存完之后,你可以执行 git commit 进行提交。
    
  3. 使用 git stash 暂时保存修改

    如果你不想立即提交修改,但希望清理工作区,将所有未提交的更改暂时存储起来可以使用 git stash 
    这会将所有未提交的更改保存到堆栈中,并恢复工作目录为干净状态。
    之后你可以切换分支、拉取代码等操作。
    要恢复这些更改,可以使用:
    git stash pop
    
  4. 放弃未提交的修改

    如果你确定不需要保留这些修改,可以通过以下命令丢弃本地更改:
    放弃工作区中的所有未暂存修改:git checkout -- <file>
    或者放弃所有文件的修改:git checkout -- .
    删除暂存区中的修改:
    如果你已经将更改暂存但还没有提交,可以使用 git reset 撤销暂存:git reset <file>
    或撤销所有暂存的文件:git reset
    
  5. HTTP 304

答: 304 表示资源自上次被请求后就没有修改过,客户端可以使用缓存的版本

301 代表资源永远的重定向到了新的地址

302 代表资源临时被重定向到了新的地址

浏览器的缓存机制?

  1. es6 的事件循环

答: js 的任务分为同步任务和异步任务,同步任务会直接进去主执行栈,异步任务会进入事件队列,等主执行栈的的所有同步任务执行完成,

也就是主执行栈空的时候,去查看事件队列中的任务,推入主任务栈,这个过程不断地循环执行,就是 es6 的事件循环。

事件循环流程图

同步代码执行:首先执行同步代码,所有同步任务都会进入调用栈。

异步任务处理:当遇到异步任务时,异步任务会被发送到 Web APIs(或 Node.js APIs),并在那里执行。执行完成后,它们的回调被放入任务队列。

微任务队列优先:调用栈为空时,事件循环首先检查并执行微任务队列中的任务。

宏任务队列执行:在微任务执行完后,事件循环会开始执行宏任务队列中的任务。

  1. CSS 弹性布局 flex

答: 常用:flex-direction、justify-content、align-items

  1. 手机端调试工具

  2. 产品与前端的选择与发展