前端面试的感想

     首先抛出一个问题:你有计划吗?

      我不是一个优秀的人,但是我是一个让自己变得优秀的人,虽然在这条路上我也失望过、也在沮丧中颓废过,但是我还是要成为一个让自己变得优秀的人。到这里,我可能是一个励志的人。

     路程遥远?你有能力吗?大三下学期,如果你没有找实习或者你没有好的项目,你怎么进大公司???如果没有机遇和运气双重的底,那就只能让自己变得有能力。大二的时候,想到自己要找工作,凭什么技能找??可能是由于自己是软件工程专业的学生,因此会觉得还是技术类岗位比较适合我,接触了前端,开始了有兴趣的学习。

    找暑期实习,“金三银四”,投简历,作笔试,笔试过得就会面试,接下来的就是一堆面试的问题。对我而言,目前最大的感受就是第四次面试了。

   第一次面试时美团-电话面试:当时的自己真的准备的挺少的,觉得,面不过没关系,起码长经验了,面试官准时的打电话:1.自我介绍,2.问了我所做的项目中我负责的内容,系统分为几个模块,然后就是css方面的知识:3.如何垂直居中、4.如何媒体查询。http方面的知识是前台所必须要掌握的了,5.问了http的请求方法有几种,get和post的请求.6.跨域传输7.构建工具的使用8安全方面的知识emmm自己太轻视面试了,所以有些东西,基础都忘记了。

   第二次:去哪儿网,1.手写递归 fn=f(n-1)+f(n-2),f(1)=f(2)=1.2介绍项目:这里介绍项目老师想要听得可能不只是你的项目功能、作用,还要介绍些自己负责的内容,怎样实现,这里真的要自己掌握好了。

  第三次呢,腾讯,这次的人毫无疑问是超级多的,但是面试的效率也是很高的,整个面试很快,问了项目的问题,我觉得我自己自我介绍中的项目给自己及面试官问的一个问题了,介绍的不是很好,无缘了,但是锻炼下还是很好的,才会心不慌张的面试。

  第四次;数云-这次面试过程很久了一个小时四十分钟,基础题+项目+http,问的天花乱坠(都是前端题),

  数云面试之详细介绍:

  HR面:自我介绍+未来三年的工作计划+是单纯的实习还是希望有转正的机会

 技术一面:1:说一说你的项目,你的项目中遇到的难点是什么?怎样解决的

                   2:了解对象对象吗?什么时候会用面向对象编程?

                  3:http的请求的过程原理(这里面试官告诉我,作为前端掌握http的通信原理非常重要)

                  4:原型链是怎样产生的?(由于语言表达的较不清楚,所以直接在面试的场中画了一个原型链图形)

                     

                

                 5.对于anjularjs中在项目都用到了哪些?有用过路由吗?(我只说了我自己在单页面的项目中用了路由)

                 6.前端的性能优化方法?

                 7.前端的垃圾回收机制?

                 8.css中会有一些父类选择器、子代选择器,你自己在开发时,有没有用父类的?又问了我css样式的解析过程。

                       css的样式解析是从右向左开始进行解析的,https://blog.csdn.net/jinboker/article/details/52126021解释的就比较清楚了,这个时候,面试官就说如果在标签时会用id吗?回答:会用,在js获取元素时用的比较多,又问了id会不会影响到js,en?我回答是,id如果没有在js中被获取到,应该没有什么用吧,面试官告诉我,如果标签中的id在js中没有用到,其实也是js中的全局变量。???长知识了。

               9;结束了,问我还有什么问题需要问的吗?我觉得这种机会太难的了,就问了项目中的一个数据处理的问题。

          第三面:技术主管了,拿着笔试题,仔细看,然后问了我笔试中的一些题,基础比较多,含金量还是很高的,列出来。

              1.下面的程序

1 if (!("a" in window)){
2   var a = 1;
3 } 
4 console.log(a);

          解答:考察的是变量提升,预解析

1 var a=undefined;
 if (!("a" in window)){
2    a = 1;
3 } 
4 console.log(a);

  预解析后a就是underfined了,太紧张了,忘记看if中的语句是否执行了,结果答的不符合那个主管面试官的心意。

2、console.log(0.1 + 0.2 === 0.3)

    打印为什么是false:因为0.1+0.2在浏览器中会打印出来0.30000..4.是不等于0.3的,又问了我该如何精准的计算出0.1+0.2.当时头脑一片空白,后来想到随机数获取乘以100.因此就是将(0.1+0.2)*10/10这样就好了。

 3.console.log(2 in [1,2]);这个打印出是false,为什么?

      我回答了in关键字是用来判断对象中的属性是否存在,而后面的那个是数组,所以等于false.答道这里,主管面试官摇头了,惊慌失措,一脸迷茫,直接告诉面试官我不知道了。

        查了in关键字的判断属性,只能够判断key值是否存在,无法判断value的值;

         

  上面的例子,正是向我们展示了数组的特性,之所以console.log(1 in[1,2])等于true,是因为arr数组中的长度中农存在key=1的值得。就是这个样子了。

4.给一些建议吧,基础一般般,我自己也感觉到了,要学会变通,我给你一道题,你要知道其余的变种题型,要学会举一反三,把最基础的抓一抓,书上的程序不要以为自己会了,就不敲代码了,不能停留在看程序上,这还是需要加强的。

在数云面试了一个半多小时,紧张而又学习的过程。

  最后写给每一位求职的学生:最好的都是值得拼搏的,除了找工作、找实习、记得休息。

 

 

             

不该看的不看,不该说的不说,不该听的不听,不该想的不想;
原文地址:https://www.cnblogs.com/mfyngu/p/8869844.html