当前位置: 首页 > 面试经验 >

魔门塔 前端日常实习 2022.12.6 一面二面已OC

优质
小牛编辑
125浏览
2023-03-28

魔门塔 前端日常实习  2022.12.6 一面二面已OC

一面 12.6 45min

  1. 自我介绍
  2. 简历上项目都是自己写的吗,有没有跟别人合作过
  3. 数组怎么删除指定位置的元素

答了遍历一遍找想要的,splice, slice,filter

  1. 本地有开发环境吗,然后开始共享屏幕

用filter写了一下,刚才的删除

  1. 怎么让一个函数暂停一段时间再执行,没写过,开始很慌,用await, promise写了一下,但好像有点理解错意思了。面试官说外面可以看起来跟同步一样。应该是可以不传函数进去,单独写一个延时的,在外层用await来调用,回头再来写一下
async function delayFn(fn, delay) {
await new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
}, delay)
})
fn()
}

delayFn(() => {
console.log('3秒后执行我~')
}, 3000)

  1. 对象数组转树,每个对象有自己的uid, pid,没写过,答了可以用递归实现,写了半天,没写出来。
  2. 说说防抖、节流,写个节流吧
  3. React学了那些
  4. 说说useEffect
  5. 建个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入职

 类似资料: