【拼多多】前端岗-2024届暑期前端实习面经
一面
- 介绍下Chrome插件的开发(简历里有写)
- 介绍下打包优化都做了什么(简历里有写)
- Gzip压缩前后端分别怎么配置的
- 如果都进行Gzip压缩应该不止减小20多体积吧(超过一定体积才压缩)
- 说说CSS三栏布局实现方式,越多越好(说了四五种)
- 介绍一下如果让你封装一个Modal组件,你会怎么封装,会考虑哪些功能(撞枪口上了,字节青训营中做的组件库开发,Modal组件就是作者写的🥳,顺便放上当时组件库的文档地址)
- Modal组件是怎么让其一直保持在最顶层的(z-index)
- 只用z-index就肯定能确保Modal在最顶层嘛(作者介绍了层叠上下文,并给出自己的解决方案)
- 实现一个类似leetcode官网的拖动分割线能实现左右大小的变化,效果点击👉这里进行查看
- 口述HTML结构+CSS的两栏布局
- 手写题:用原生JS实现分割的功能(mousedown、mousemove、mouseup)
- 算法题:第K大的数
- 判断数据类型的方法有哪些
- 判断一个对象是否为Promise(是一个对象或者函数并且有then方法)
- 浏览器从输入URL到页面展示发生了什么
- 单行省略和多行省略
- 看代码说结果
array = ['w', 'o', 'r', 'l', 'd']
<Tag v-for="(item, index) of array" :key="item">
如果进行了array=['w', 'o', 'r', 'l', '!', 'd'],那么Tag组件的created、updated、destroyed分别触发了几次?
答:1 0 0
array = ['w', 'o', 'r', 'l', 'd']
<Tag v-for="(item, index) of array" :key="index">
如果进行了array=['w', 'o', 'r', 'l', '!', 'd'],那么Tag组件的created、updated、destroyed分别触发了几次?
答:1 1 0
二面
- 手写题:使用正则实现邮箱匹配
- 说一些常见的请求头
- 算法题:买卖股票的最佳时刻(一)
- 手写题:实现reduce API
- 算法题:零钱兑换
笔试
笔试有几题选择,实在记不得了。 只记得当时写完笔试记录了几题编程题。
1.手写驼峰命名转化
2.写树的遍历,获取dom元素的叶子节点
3.手写promise.race