首页 > 华为前端社招面经(已拿offer)
头像
跪求个offer
编辑于 2020-02-17 23:35
+ 关注

华为前端社招面经(已拿offer)

之前在招聘网站上更新了简历后没多久就有华为的hr来加微信,解释了社招OD的性质以后就是机试+性格测试,然后就进入了面试环节


华为OD是什么?

简单来说就是:

1、不跟华为签合同:

目前华为社招15级还是17级以下的(级别我记不清了)+社招的都是跟德科签合同,校招进的才直接跟华为签

2、不是外包(hr说的)(个人认为应该是高级外包):
工资跟正式员工一样,有绩效有奖金,但没有股票

想了下既然社招基本都是OD那就试一下了


前端机试只有一题笔试题,不难:

题目:

xAyB猜字游戏,输入两组数字,每组数字包含4个非负整数,同一组中的四个数字互不相同,数字间以空格分隔。

第一组数字为猜数字游戏的正确答案,第二组数字为玩家所猜的答案,根据以下规则输出猜数字的结果xAyB。

规则1:如果数字相同,且位置相同,则得到一个A

规则2:如果数字相同,且位置不同,则得到一个B

输入描述:两组数字,每组数字包含4个非负整型数字,同一组中的四个数字互不相等,数字以空格分隔

输出描述:xAyB

示例:

输入:

1 2 3 4

1 2 5 3

输出:

2A1B

答案可以参照:https://blog.csdn.net/zhangsh87/article/details/81109900


性格测试:

不多说,主要注意前后选择的答案的一致性和焦虑度不要太高就行


性格测试通过以后,hr会问你要工资证明或流水以及身份证复印件,不得不说华为这点还挺严格


一面:hr视频面

hr面没问什么,主要就问了下离职原因,以及侧面问你是不是考核过不了被淘汰了才出来找工作,薪资要求等,剩下就聊天。hr人还挺nice。


二面:技术电话面

1、自我介绍

2、在项目中发挥的角***>

3、做过的项目中,哪些可以体现你的技术水平的地方?

当时讲了下项目的难点以及怎么解决的,但是面试官又重复了一遍要求是能体现技术水平的,我就懵了,最后也没讲出来

4、js函数的4种调用方式讲一下

作为函数调用

作为对象的方法调用

使用 call 和 apply 动态调用

new 命令间接调用

具体可见:http://c.biancheng.net/view/5700.html


5、this的使用场景

我听到这个题目的时候也懵逼了,后来查了下,其实想考察的是this的指向。。。

于是我回答的时候回答偏了,面试官不太满意,也没有引导

所以一般遇到这种听不太懂的题目,最好多问一下面试官,或者直接问他是不是想考察xxx知识点,不然吃亏的是自己啊
这里给下参考答案:

this的指向有哪几种情况?

this代表函数调用相关联的对象,通常页称之为执行上下文。
  1. 作为函数直接调用,非严格模式下,this指向window,严格模式下,this指向undefined;
  2. 作为某对象的方法调用,this通常指向调用的对象。
  3. 使用apply、call、bind 可以绑定this的指向。
  4. 在构造函数中,this指向新创建的对象
  5. 箭头函数没有单独的this值,this在箭头函数创建时确定,它与声明所在的上下文相同。


6、regexp正则,讲讲贪婪模式

正则默认是贪婪模式,默认的贪婪模式会尽可能多的匹配所搜索的字符串。

非贪婪模式:

当?字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串

例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。

7、vue和react的区别

我简历里写的vue和react都会,所以才被问了这样的问题

网上的参考答案:

相同点:

1.数据驱动视图,提供响应式的视图组件

2.都有virtual DOM, 组件化开发,通过props参数进行父子组件数据的传递,都实现webComponents规范

3.都支持服务端渲染

4.都有native解决方案,reactnative(facebook团队) vs weex(阿里团队)

不同点:

1.vuex是一个针对VUE优化的状态管理系统,而redux仅是一个常规的状态管理系统(Redux)与React框架的结合版本。

2.开发模式:React本身,是严格的view层,MVC模式;Vue则是MVVM模式的一种方式实现

3.数据绑定:Vue借鉴了angular,采取双向数据绑定的方式;React,则采取单向数据流的方式

4.数据更新:Vue采取依赖追踪,默认是优化状态:按需更新;

React在则有两种选择:

1)手动添加shouldComponentUpdate,来避免冗余的vdom,re-render的情况

2)Components 尽可能都用 pureRenderMixin,然后采用 redux 结构 + Immutable.js

5.社区:react相比来讲还是要大于vue,毕竟背后支撑团队不同。

facebook vs 个人!当然目前vue的增长速度是高于react的增速,不知道未来的发展趋势是如何。


我当时回答的是从:vue双绑/react单向数据流;diff算法;组件通信这几点讲了下


8、你还有什么问题问我吗?

问了下刚刚面试的表现,因为感觉面试官不太满意,怕面试挂了于是就提这个问题看看能不能翻盘,隔了一天后hr通知三面


三面:技术电话面

1、自我介绍
2、项目细节

3、问大学学了哪些语言,这些语言跟js的区别

当时答曰:

学了c++,java

js是动态弱语言,java是静态语言,因此js没法进行数据类型的检查


于是面试官:这是编译型和解释型的区别吧

我:。。。(感觉面试官可能也搞混了)

这里顺便贴一下【编译型和解释型、动态语言和静态语言、强类型定义语言和弱类型定义语言区别】

编译型和解释型的区别

先来看看编译型语言定义:

编译型语言首先是将源代码编译生成机器指令,再由机器运行机器码(二进制)。

再来看看解释型语言的定义:

解释型语言的源代码不是直接翻译成机器指令,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。

咋看一眼,还是一脸懵逼。下面打个比方:

* 编译型相当于用中英文词典(翻译器)将一本英文书一次性翻译(编译)成一本中文书。以后查看直接就是中文了。可想而知,以后读书(运行)会非常非常方便。

* 而解释型相当于用中英文词典(翻译器)将一本英文书读一段翻译一段(解释)中文。以后查看时还是需要重新翻译。这样效率会低一些,必须依赖解释器,但是跨平台性好。

动态语言和静态语言

我们常说的动态语言和静态语言,其实是指动态类型语言和静态类型语言。先来看看动态类型语言:

动态类型语言,是指数据类型的检查是在运行时做的。用动态类型语言编程时,不用给变量指定数据类型,该语言会在你第一次赋值给变量时,在内部记录数据类型。

再来看看静态类型语言的定义:

静态类型语言,是指数据类型的检查是在运行前(如编译阶段)做的。


强类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!

4、你还有什么问题?

本来以为三面挂了,因为第三题并没有答好,过了两天hr通知四面


四面:视频面

没有技术题,大概就问了下离职原因,上家的薪资,职业规划啥的,又大概过了两三天,offer就下来了

总得来说,前端的技术没有考得很多,技术二面有问到但基本上是基础题,可能因为我本身工作经验也不多,所以考察的基础会更多一些
希望这份面筋对面试华为的前端同学有帮助啦~

更多模拟面试

全部评论

(18) 回帖
加载中...
话题 回帖