魔门塔 前端日常实习 2022.12.6 一面二面已OC
一面 12.6 45min
- 自我介绍
- 简历上项目都是自己写的吗,有没有跟别人合作过
- 数组怎么删除指定位置的元素
答了遍历一遍找想要的,splice, slice,filter
- 本地有开发环境吗,然后开始共享屏幕
用filter写了一下,刚才的删除
- 怎么让一个函数暂停一段时间再执行,没写过,开始很慌,用await, promise写了一下,但好像有点理解错意思了。面试官说外面可以看起来跟同步一样。应该是可以不传函数进去,单独写一个延时的,在外层用await来调用,回头再来写一下
async function delayFn(fn, delay) { await new Promise((resolve, reject) => { setTimeout(() => { resolve() }, delay) }) fn() } delayFn(() => { console.log('3秒后执行我~') }, 3000)
- 对象数组转树,每个对象有自己的uid, pid,没写过,答了可以用递归实现,写了半天,没写出来。
- 说说防抖、节流,写个节流吧
- React学了那些
- 说说useEffect
- 建个React项目,随机生成验证码,100以内加减乘除,判断用户输入的答案能否通过验证
import React, { memo } from 'react' import { useState } from 'react' const getRandomNum = () => { return Math.floor(Math.random() * 100) } const getRandomFlag = () => { const arrFlag = ['+', '-'] return arrFlag[Math.floor(Math.random() * arrFlag.length)] } const App = memo(() => { const [num1, setNum1] = useState(getRandomNum()) const [num2, setNum2] = useState(getRandomNum()) const [flag, setFlag] = useState(getRandomFlag()) const isTrue = (value) => { switch (flag) { case '+': return num1 + num2 === value case '-': return num1 - num2 === value } } // 记录输入框的值 const [inputValue, setInputValue] = useState('') const handleInputChange = (e) => { setInputValue(e.target.value) } // 验证 const handleBtnClick = () => { if (isTrue(inputValue)) { console.log('验证成功') } else { console.log('验证失败') } } return ( <div> <div className='show'> { `请输入验证码:${num1} ${flag} ${num2}` } </div> <input type="text" value={inputValue} onChange={handleInputChange} /> <button className='comfirmBtn' onClick={handleBtnClick}>验证</button> </div> ) }) export default App
不考研吗,下学期没课了吗,啥时候能到岗,实习多久,有没有在面别的公司,转专业留了一年级,
反问,现在水平找日常实习够吗。
感觉没怎么说过话,一直在写题写题。
手写题4/5
下来把数组对象转树和树转数组对象还要再学一下~
后续:一面结束后1h左右hr打来电话,约了下午6:30二面,好紧张,加油!!
二面 12.6 18:30 1h
二面我称之为八股文吟唱面~
三个手写题 3/3
记不清顺序了,简单回忆一下
- 在北京有亲戚朋友吗
没有,说了打算和学校一个一起学前端的同学一起来北京,原本他也今天晚上面试,不过字节突然给他往后推了十多天
- 什么时候来北京,实习打算,你同学面的哪,来北京怎么住,打算租房吗
- 为什么不投字节
- 说说项目认为比较难的地方
说了一下~之后就没问过项目,可能是没啥值得问的qaq
- let、const、var
- 箭头函数普通函数区别
- 看你用过Vue,Vue3怎么实现数据绑定的
答了vue2的和vue3的分别用的什么
- vue3为什么用proxy
defineproperty缺点,proxy优点
- typescript的interface和type有什么区别
没答好,还是要好好看一下ts
- 说说es6的类
答了es6的class是语法糖,实际还是转化成ES5的组合寄生继承
- 说说组合寄生继承
八股吟唱~~
- es6继承用什么写
extends
- 原型和原型链
- ESM中export和export default区别
- 看你项目里还用到nodejs,说说nodejs的require和他们的区别
说了基本的导出一个对象,引入一个对象
- 除了使用上的还有什么区别吗
之前学的时候看过,忘了...答了执行方式有区别,具体没答出来
- 说说事件循环
八股吟唱ing~~
- 说说Promise
八股吟唱ing~~
- Promise常用方法
答了then, catch, all, race, 其他的想不起来了
- race是干什么的
- 手写Promise.all
一开始写了个无序的。
- promiseall有序吗
有序、改了一下代码
- 手写Promise并发请求数量控制
- HTTP除了get、post还知道哪些请求
答了PATCH、DELETE、OPTIONS,其他的想不起来了
- OPTIONS是干什么的
- 知道哪些请求头,响应头
想起来啥说啥
- 缓存相关相应头,怎么设置
- flex布局
- position有几种,分别是干什么的
- docker熟悉哪些命令
答了pull,logs,start,image,ps...
- 没有用过docker build吗,平时怎么用docker的
平时用的最多的还是logs
- 小程序,用原生框架写的,问还知道哪些小程序框架
答了taro、uniapp,但都没学过
- 还有个算法题,跳台阶
- 博客写过可视化学习的笔记,问知道哪些可视化的库
说自己简单学过canvas、svg,知道three.js,聊到了蚂蚁集团的antv团队
- 除了简历上写的,还了解什么技术
说了能写Java、Python、C++
- 还有一些记不太清了
- 又想起来几个
- nginx怎么用的
说没手动配过,平时用的都是可视化界面(宝塔面板),但能照着文档配置
- 不是问这个,是问你用nginx是要解决什么问题
答了nginx可以部署静态资源,解决跨域...其他想不起来了
- 自己以后什么打算,说了打算就业,问什么方向,我说刚开始学,还没确定,想先保证毕业以后能生存...
- 反问来了是做什么的,可视化,地图、GIS相关,主要React,还有一些业务系统
- 对学习有什么建议
说看得出我是准备过的,背的东西对于你们太简单了,谁都能背。算法能力欠缺,他不太看重算法,但是基本的算法要刷
qaq希望能过呜呜呜,球球过了吧
二面感受:不是特别熟的东西就别往简历上写了,写熟悉typescript给自己挖了坑~
下去还要再面向简历学习一下,把技术基础打扎实!!
后续
现在是北京时间2022.12.6 23:20,回忆完二面面经,感觉好他妈慌啊呜呜呜,想去魔门塔。
12.8中午收到hr电话,晚上接受offer,约了12.12入职