顺电家电官方旗舰店 - 京东

面试官问题:

  1. 有没有用过git stash

git stash 把工作区和暂存区的改动保存在一个栈上,后续可以在任何分支重新将某次修改推出来,可以添加后缀命令:

  • list: 展示当前保存进度
  • pop:把最近一次保存到内容弹出并恢复到工作区,有冲突需要手动处理才能pop成功。
  • apply: 类似pop操作,但是不会删除弹出的修改
  • show: 查看最新保存的stash和当前目录的差异
  • drop + stash名称: 移除某个指定的stash
  • clear: 删除所有存储的进度

  1. 说一下electron通信方式

通过IPC进程通信机制,主进程的ipcMain和渲染进程ipcRender之间进行通信,渲染进程之间通过主进程进行通信。


  1. git如何合:

在某一分支上输入命令git merge which-branch


  1. 场景题,如果一处代码已经提交到a分支,我在c分支也用了,要怎么处理

如果能确定具体的commit,复用a分支上的某个功能,可以通过在c分支通过git cherry-pick <commit-id>

如果需要很多改动,需要同步整体代码,那么在c分支git merge a

cherry-pick也会发生冲突,看情况手动merge即可


  1. pinia和vuex的区别

两者都是状态管理库。

vuex必须state/mutations/actions

pinia直接用函数写,更像组合式api,天然支持ts


  1. var、let、const之间有什么区别

var可以变量提升,先用后声明。在函数中使用var声明变量是局部的,如果不在函数中使用var就是全局的。

let和const由于存在暂时性死区,提升之后不会初始化,也不能被引用。在声明前处于暂时性死区。

let 和const声明的变量只能在当前函数块使用,不允许重复声明。

const 只能读不能写


  1. electron打包的命令是什么

会先构建前端,在执行electron-builder工具打包


  1. electron页面为什么会出现白屏的现象

因为main进程浏览窗口创建的时候默认显示窗体,而我们的网页内容还没有加载好,所以会出现白屏现象,在创建窗口的时候设置show为false,并且在显示窗体之前加载网页内容,就不会出现窗体和加载内容不同步导致的白屏问题了。


  1. 前端布局方式有哪些

传统布局方式:

  • 块级布局:
    • 默认垂直排列
    • 块级布局:容器高度由内容撑开
  • 浮动布局:
    • 元素脱离普通文档流,占据左右空间
    • 需要清除浮动避免容器高度塌陷
      • 父元素设置:overflow:hidden
  • 定位布局:
    • 脱离文档流或相对位置偏移
    • 可以实现重
    • 叠、固定位置或粘性滚动效果
    • 通常用于弹窗、工具提示、固定导航栏
  • 弹性布局(flex):
    • 可以控制排列方向和对齐方式
    • 子元素可以自适应、分配剩余空间
    • 可以轻松实现居中、间距分布、响应式伸缩
  • CSS Grid
    • 二维布局
    • 可以显示定义行列大小、间距和区域命名
    • 支持复杂的响应式布局
    • 适用于表格型布局、网格画廊
  • 多列布局:将内容自动划分成多列
  • 表格布局:display: table

自己补充:

  1. electron的技术架构

chromium可以支持ECMAScript最新特性

nodejs可以实现文件读写

NativeAPIs提供统一的原生界面能力,获取底层设备的硬件信息


  1. electron桌面应用运行机制

点击app启动,主进程创建window,由win加载主界面,如果涉及到人机交互,例如开始烧录,渲染进程接收到的组件信息,通过ipc通信机制传递给主进程,主进程收到信息之后,然后调用nativeAPI,与设备进行串口通信。


  1. electron的生命周期

ready: app初始化完成

dom-ready : 一个窗口中的文本加载完成,之后可以对dom进行操作

did-finish-load: 导航完成时触发

window-all-closedL: 所有窗口都被关闭时触发

before-quit: 在窗口关闭并且应用退出时触发

quit: 当所有窗口被关闭时触发

closed: 当窗口关闭时触发,此时应删除窗口应用,回收窗口实例


  1. Nodemon是什么,有什么用

Nodemon是一个npm下载的全局依赖,可以在终端执行js文件。每次更改文件代码会热更新