小厂挂了十次之后,迎来了海康威视

前言

前段时间一直忙着面试和背面经,就没怎么写文章。这段时间那是非常的煎熬,一直面试一直挂,有些感觉面试的还不错,八股和编程题都答上来了,时间也面了一个小时,但最终还是挂了,一度陷入了自我怀疑中。调整了几天索性直接狠下心放弃小厂直接投大公司,周一的时候接到了海康的面试邀约,激动的心颤抖的嘴,一轮技术面一轮hr面,最后成功拿下,既在意料之外又在情理之中。

自我介绍

自我介绍就是套用网上的一些模板然后稍微修改了一下,那毕竟要按照自己的真实情况来写,感觉好像也没啥太大的亮点,可能比别人更有优势的就是有一份实习经验吧

面试官老师好,我叫xxx,东华理工大学25届软件工程专业大三在读,想应聘贵公司的前端实习生。低年级的时候,我通过B站来自主学习、打了些比赛,拿过传智杯省三,奖学金也拿了一些,专业人数670人,成绩排名前5%。寒假的时候在杭州的一家公司进行远程实习,使用uniapp独立开发小程序项目,个人比较喜欢前端,也能用node写后端,最近正在学习aigc。chatgpt火了之后,对AIGC非常感兴趣,所以学习了python、prompt enginneer、wtf学院的langchain课程等,并且在github上给wtf学院的ai开源项目做过贡献,拿到过该项目的contributor。平时写项目的时候会用一些AI工具提升编程效率比如copilot和通义千问,不过一般不会去用,因为目前还处于一个学习阶段,遇到问题还是需要自己去多思考,过度依赖ai工具会产生惰性。

阅读过js相关的书籍,并在掘金上写过相应的文章,遵从费曼学习法,喜欢分享自己的学习心得。平时主要使用vue,熟悉vue全家桶开发。遇到问题时会使用浏览器和gpt查询解决办法,也会去阅读官方文档和MDN。

我觉得未来最大的机会和风口是AI, 随着大模型的不断发展,会对很多行业产生冲击,所以未来我会持续去学习大模型的使用,并和前端与之结合,以上就是我的自我介绍,谢谢。

提问环节

快排

一开始就是一道算法,面试官这道题原本问的是写一个排序算法,我说了常见的冒泡和选择,然后他问我还知不知道其它的排序方法,比如快排,我一听就知道他就是想考我快排,但是我确实不会,就含糊了几句就过去了,本来以为这个都不会铁定挂了,但是并没有,可能因为我有实习经验的原因,所以本身也没几道八股。这里我给出的排序方法是阮一峰老师写的阮氏快排,我觉得这种要更好理解一些,写起来也比传统的原地排序要更简洁。

js 复制代码
/**
 * 快速排序:
 * @param arr 需要进行快速排序的数组
 * @returns {*[]|*}
 */
const quickSort = function (arr) {
    if(arr.length < 2) return arr;
    // 随机选择0~arr.length之间选一个基准值
    const pivot = Math.floor(Math.random() * arr.length)
    // 声明两个数组,分别用于存放比基准值小的数据和比基准值大的数据
    let minArr = [];
    let maxArr = [];
    // 根据基准值填充数组
    for(let i = 0; i < arr.length; i++){
        // 大于基准值就放maxArr里
        if(arr[i] >= arr[pivot] && i !== pivot){
            maxArr.push(arr[i]);
        }
        // 小于基准值就放minArr里
        if(arr[i] < arr[pivot] && i !== pivot){
            minArr.push(arr[i])
        }
    }
    // 分别对基准值划分出来的数组递归调用快速排序,然后合并数组
    return [...quickSort(minArr), arr[pivot], ...quickSort(maxArr)];
}

vue路由传参

当时觉得海康也是大厂,考的肯定比较难,就一直再看比较难的题目,比如跨域和性能优化等,结果把简单的给忽略了,当时听到这个题目先是惊喜,惊喜于它的简单,接着是惊吓,因为自己忘了。。。路由传参有两种方法

  • 一种是用path进行页面跳转用query传参
js 复制代码
import { useRouter } from 'vue-router'
const router = useRouter()
// 在页面跳转的时候传递的参数会以?拼接在url后面
router.push({path: '/noteList', query: {title: title}})
  • 另一种是用name跳转用param传参,但是这种方法在配置路由的时候要在后面加上/:
js 复制代码
import { useRouter } from 'vue-router'
const router = useRouter()
// 传递的参数以/拼接在url后面,但是配置路由的时候要加上参数的名字
// 比如:path: '/noteList/:title',
router.push({name: 'noteList', params: {title: title}})

promise.all

Promise.all() 方法接受一个可迭代对象(通常是数组,这个数组里面的元素全都是promise对象)作为参数,返回一个新的 Promise 对象。这个新的 Promise 对象在可迭代对象中所有的 Promise 对象都成功时才会成功,一旦有一个 Promise 对象失败就会立即失败。

面试官就这个问题还延伸了一点,让我想一个实际的场景,不仅考我知不知道它的用法,还要会用,我当时脑子灵光一闪就想到了打游戏,打游戏的时候必须要所有的小关卡都通过了这关才算过,只要有一个失败了那最终的结果就是失败的,机智如我啊。

vue2和vue3的区别

面试了这么多次,这个问题是经常被问道的,出现的频率那是非常之高。看了很多文章,发现这篇总结归纳的是相对来说全面一些的Vue3和Vue2的区别

常规聊天

可能因为我之前有一份实习,所以八股就没怎么问,基本上就问了上面这些,差不多一只手就能数的过来,剩下的都是聊一些实习的收获啊、为什么离职啊、为什么选择前端啊等等常规的问题,最后就是聊了一下公司的业务以及使用的技术栈,然后技术面就这样愉快的结束了,之后的hr面也是常规聊天,毕竟hr不可能和你聊八股和算法。

结尾

可能我运气比较好,然后加上有实习经验,海康的面试相对于其他人来说就相对比较简单,不过还是一分耕耘一分收获,如果没用之前的三个月实习和十余次的面试经验,也收获不到这份果实。不过这只是开始,后面还有很长的一段路要走呢~ 加油吧

相关推荐
_.Switch8 分钟前
Python Web 应用中的 API 网关集成与优化
开发语言·前端·后端·python·架构·log4j
一路向前的月光12 分钟前
Vue2中的监听和计算属性的区别
前端·javascript·vue.js
长路 ㅤ   12 分钟前
vite学习教程06、vite.config.js配置
前端·vite配置·端口设置·本地开发
长路 ㅤ   13 分钟前
vue-live2d看板娘集成方案设计使用教程
前端·javascript·vue.js·live2d
Fan_web30 分钟前
jQuery——事件委托
开发语言·前端·javascript·css·jquery
安冬的码畜日常31 分钟前
【CSS in Depth 2 精译_044】第七章 响应式设计概述
前端·css·css3·html5·响应式设计·响应式
莹雨潇潇1 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
Jiaberrr2 小时前
Element UI教程:如何将Radio单选框的圆框改为方框
前端·javascript·vue.js·ui·elementui
Tiffany_Ho2 小时前
【TypeScript】知识点梳理(三)
前端·typescript
安冬的码畜日常3 小时前
【D3.js in Action 3 精译_029】3.5 给 D3 条形图加注图表标签(上)
开发语言·前端·javascript·信息可视化·数据可视化·d3.js