面:你先自我介绍一下吧
面:说一下 css 水平垂直居中的方法
我:可以通过 定位来实现给里面的容器设置上下左右边距为 0,绝对定位,然后 margin auto。还可以通过 flex 实现, display: flex; justify-content: center; align-items: center;
面:常用的太行盒子有哪些?
面:在一个盒子里面有四个元素,是水平居中的,我想吧第二个 div 排到第一个 div 前面去,如何去做?
面:有一个 div,里面有一段文本,这个文本不一定有多长,然后给 div 设置了单行省略号的样式,有些功能我需要检测这个盒子是否有省略号,比如有些地方需要有省略号弹个窗,没用的话就不弹窗,这个怎么做?
我:根据字符串的长度来判断?
面:但是 div 的宽度不确定
我:可以根据文字大小吧,然后……
面:其实没有那么麻烦,只是判断 div 就行了。
面:那你说一下常用的 es6 有什么吧
面:let const var 的区别是什么?
面:使用 let 声明一个变量 a,可以使用 window.a 访问吗?
面:我使用 const 定义了一个数组,可以往数组里面添加元素吗?
我:可以的
面:为什么可以?
我:因为这个变量是对这个数组的引用,可以进行更改内部的
面:箭头函数和普通函数的区别?
面:常用的 promise 的方法有什么?
面:什么场景使用 Promise.all 方法?
面:Promise.all 的实现原理是什么?
面:async 函数如何捕获错误
我:使用 try catch
面:async 函数的返回值是什么?
面:set 和 map 的区别是什么?
面:vue3 和 vue2 有哪些区别?
面:为什么 vite 启动速度会很快呢?
面:vite 的核心启动原理你了解吗?
面:vue 的生命周期有哪些?
面:拿到页面中的 dom 元素是在哪个生命周期中?
面:说一下组件传值的方式吧
面:自组建接收父组件传递过来的值都可以使用什么 API 接收到?
我:基本上都是使用 props 接收的
面:如果有些没有使用 props 接收,那么如何接收?
面:$attrs 有了解吗?
面:你组件库的 Tree-Shaking(vite 文档) 是如何做的?
我:这个还没有做
面:如何使用 ts 定义树组件的类型?
面:ts 内置的一些工具类型都有什么?
面:枚举都使用在哪些场景呢?
面:axios 你是怎么在项目中使用的?
面:拦截器有没有写多个的?比如写一个是不够的。如果我写了多个拦截器,那么它的执行顺序是怎么样的?
面:你是如何做性能优化的?
面:vue 响应式实现原理是什么?
面:有没有了解里面有一个负责渲染和更新的 watch 的类?这个有没有了解过?
面:vue 的更新是一个什么级别的更新?更新的范围是什么?
我:只更新你修改的 dom,并不是全部都更新
面:那么如何判断更新这个修改的 dom?
我:是通过一些 diff 算法来实现的
面:具体的原理是如何实现的?
我:我不太了解
面:你的函数工具库都有什么功能的函数?
面;防抖和节流的区别是什么?
面:你是如何解决跨域问题的?
面:有没有遇到过 option 请求的?
我:没用
面:http 状态码常用的都是有哪些?
面:401 和 403 有什么区别?
面:301 和 302 有什么区别?
面:keep-alive 是怎么使用的?
面:keep-alive 的参数都有什么?
面:我给组件设置 name 有什么用?
面:树型组件如何实现?
我:使用递归组件
面:递归和 name 有什么联系吗?
我:递归组件必须有 name 否则不能递归
面:sass 你都使用过什么语法?
面:你是 switch 组件是如何实现的?
面:说一说你对事件循环的了解吧
面:你有什么想要问的呢?
我:咱们工作中最大的挑战是什么呢?
面:因为我们有一些老项目,需要进行重构,我感觉还是比较有挑战的。然后业务功能其实还是没那么复杂的。
我:平时的代码规范是什么样的?
面:基本上大家都是配置了相同的 eslint 格式都是比较规范的,但是没有一个明文的规范
我:你感觉我还有什么需要提升的吗?
面:还是基础为主吧,我大致看了一下你的组件库,可能功能还是比较简单的,不过也没事,比较刚开始嘛,不过这个出发点是不错的,我还在 B 站上看到过你,我也经常逛 B 站
我:如果你在 Github 上看到这个项目,你有兴趣去参与一下或者去提个 PR 吗?
面:我目前为止是不会的,哈哈,一个是时间的问题,还有就这个整体的思路需要想好久,如果想要实现一个大型的组件库,工作量还是很大的
我:您为什么会选择这一家公司呢?
面:哈哈哈,因为公司招人
我:平时加班情况怎么样?
面:平时加班倒是不多,除非项目很急的情况下,可能需要加班
我:那我都了解了
结束。