前端|华为前端社招OD面试(已拿offer)

在一天下午在,B某某sAPP上收到了,HR的请求想要一份简历。于是开始了持续1个多月的面试过程。首先是HR给了我一个牛客网上的算法题链接,要求手机打开某个公众号保持常亮,电脑打开相应配置(防止你作弊用的),开始了2个半小时的算法做题时间。碰到了3个题目,其中一题很难。要学会取舍啊 第三题才是大头。肯定挑分多的做呀。
第一面 机试 算法题考试【敏感字段加密】 第一题和第三题因为考试中不视频监控不让用手机所以没有拍照,
但是如果你去多刷刷牛客网和leetcode的算法题没啥问题的
第一题比较简单花了30分钟做出来了。(主要是一些特殊情况的判断楼主又比较粗心所以就耽搁了。)第二题看到这个题目的瞬间我选择跳过去做最后一题 总共有三题 400分 最后一题200分前两题各100分。我当时做完了第一题,第三题通过了百分之90的案例吧,算了一下分数大概能拿到280左右。有一个第二题的题目在下面如果感兴趣的话可以试试我有一份答案如果贴在最底下。
第二面 心里综合测试 过了2天HR给了我一个心理测试链接。我是一个不太喜欢数学的,并且喜欢忙碌的一个人。从头到尾100道题我都是这么选的,有几个题目重复的出现很多次。说是为了考察我自己的心理素质。100道题总的来说,凭直觉去选吧,比如你是否喜欢数学,与数学相比你更讨厌哪些喜欢哪些等等之类的。题目类似下面这种。
第三面 技术面一面(好像是某科的面试官) 在这个面试过程当中,我和面试官侃侃而谈,聊了很久,意犹未尽的感觉,他给我描述了一个非常具有前景的岗位,而我脑子里全是,如果我加入了某为我的家人为我感到骄傲之类的。考了一个算法题。我看完题目直接拔刀。然后不到5分钟做出来了下面有答案 ,看答案写题目应该可以的吧!然后接着聊天。
知识问答 问了非常多东西。
1、你看过webpack的底层代码嘛?
2、你看过vscode的底层代码嘛?
3、你是否了解过其他的除了vue的框架?
4、对比vue来说你觉得vue另外两款框架的好处有哪些?
5、你是否使用过sass less和了解过底层代码?
6、Electron Chromium你是否有了解过?
7、你怎么看node.js这项技术?

// 题意是 给了我一个 数组 和一个整数,让我判断 数组nums[0]每隔k个后是不是和nums[0]一样 大意好像是这样的 // 给了三个例子 // nums = [1,2,3,1] k = 3 true // nums = [1,0,1,1] k = 1 true // nums = [1,2,3,1,2,3] k = 2 false //这是我的答案 var containsNearbyDuplicate = function (nums, k) { let flage = '' nums.forEach((value, index, array) => { for (let x = 0; x < k; x++) { if (nums[x] == value) { flage = true break } else { flage = false } } }) if (flage == true) { console.log(true) } else { console.log(false) } } containsNearbyDuplicate([1, 0, 1, 1], 1)

第四面 技术面 二面 (知识问答+算法题) 这个二面真的很恐怖,面试官看到了我机试的那题没做的题今天让我重做一遍。然后我还是没做出来因为,机试当天就已经把题目都忘干净了。不过大概记得知识问答问了那些。
给大家看看题目
前端|华为前端社招OD面试(已拿offer)
文章图片

我也不知道泄露了会不会出大事。(- - 。。。。)
知识问答环节 1、vue2和vue3 的却别?
2、你知道为什么会跨域嘛?怎么解决跨域?
3、什么是捕获?为什么会发生事件冒泡?
4、前后端分离的好处是什么?
5、js操作数组的方法有哪几种?
6、遍历数组的方式有几种?
7、箭头函数的作用域?this指向?
8、什么是闭包?闭包会出现什么问题?(我当时想到了一个内存泄露讲完面试官好像语气一下就好起来了)
总结一下:虽然算法题我都没做出来什么东西。但是这次面试还是过了。我当心他问太多问题我在vue2和vue3的区别介绍哪里讲的很细 目录结构到vite等等等等。
第五面 资格面试(是一个级别很高的HR) 在短短十分钟内这个HR至少刺激了我6次,让我一个平常不容易去反驳别人的人变的非常想反驳这个HR,她故意扭曲了你的说的话,让两句话变的区别很大,如果你不去纠正对你来说就会有很大的损失,而我呢?当时非常的想反驳她。但是我忍住了,心里想的是这个所谓的资格面试会不会是想看我能不能扛的住压力。后来结果表明这个HR明确的能够听懂我说的内容。也确实证明我赌对了!
第六面 综合面试(是一个菊厂的面试官) 时间不长但是我觉得确实最难的一次面试了。他让我描述未来的职业规划,而我刚刚从一个三流二本毕业,规划这个事情我有一个很大众的规划。当时我是准备说先从前端入手慢慢转型为全栈选手,现在想想我如果真的这么说了那我可能拿不到这个offer了。我当时不知道为什么说了这么一段话。
首先我对未来的规划是这样的,我目前看到了非常多的我自己的大学同意学单片机的嵌入式的(物联网工程嘛)等等等的同学都选择加入了前端工程师这一个方向,而大多数的人做不到半年就选择了放弃,我围绕着这一点说了一个我认为的观点,我觉得前端工程师这个岗位是一个非常非常容易上手的岗位甚至只需要你会js、html、css 这三个语言你就可以成为一名初级前端开发工程师,可是只是掌握了这三种基本的要素你能够为企业创造的价值还是非常有限的,也就是说这是一个前期非常容易但是学精才是难的地方。我想自己能够在前端工程师上花上几年的时间去成为一个专业的前端开发工程师这样的前端开发工程师才是对企业有作为的,我也希望自己能够成为一个对企业有贡献的人,而不是进入企业之后默默无闻的混过三年又三年。面试官听完我这番话后说了一句:小伙子你能有这个思想觉悟很不错。
总结 【前端|华为前端社招OD面试(已拿offer)】整个面试过程大概就是这样了。offer几经沟通最后发下来了。也挺谢谢HR小姐姐的很感谢。她真的也非常专业、敬业。
function foo(key, str) { try { var temp = str.split('password_')[1] var temp2 = temp.split('_timeout_') // 得出需要加密的部分 } catch (err) { console.log("ERROR") return } if (temp2.length != 2) { console.log("ERROR") return } for (let x in temp2) { //temp2 长度为2 let newTemp = temp2[x].split('') // 将 需要加密的字符串切割成数组 let flage = false// 立flage newTemp.forEach((value, index, array) => { if (value != '"') { // 遍历 需要加密的部分,如果不是引号 则进入判断 if (value =https://www.it610.com/article/='_' && flage == false) { // 如果value 是下划线 并且flage为false 的情况下可以删除这个元素 newTemp[index] = '' // 删除下划线 } } else { flage = !flage // 遇到 引号关闭删除部分的代码 因题中叙述说双引号成偶数个。 故会再遇到一个引号 这个时候就需要将状态取反 然后26行就可以进入判断了 } }); // 这个for循环之后 需要加密的字段中会删除 引号之外的所有下划线 temp2[x] = newTemp.join('') // newTemp是一个数组对象取出所有元素 拼接并赋值 给temp2[x] } temp2.splice(key, 1, '******') // 利用splice 修改原数组的特新 修改需要加密的字段为****** console.log('password_' + temp2[0] + "_timeout_" + temp2[1]) //输出最后结果 } foo(1, 'password_12"___"3123___timeout____123123')

    推荐阅读