面试整理

整理了俩最近的面试,一直想总结的,怕越托忘记的越多

##面试一##

###一面###
时间有点久了,所以记得也有点不太清楚了,只是感觉运气还是挺好的。基本上的问题都还是回答出来的

  1. 跨域的几种方法,回答了四五种,然后稍微解释了下用hash的方法以及存在的一些问题,还介绍了jsonp的原理
  2. 关于js继承的问题
    先是介绍了比较熟悉的原型链的方法,然后还有一个方法就是如下

    function inherite(obj){
        function f(){}
        f.prototype = obj;
        return new f();
    }
    

    然后后面估计是面试官突然想到的,他说有一个函数p,内部定义了很多方法和对象,然后在构造的过程中比较消耗,问我怎么办,我当时理解的就是函数p以及他上面的原型链上都包含了很多的东西,就想不到怎么回答,后来问了。面试官的意思就是用上面的办法。只是我没听清除,这个只是函数本身比较复杂,对于原型上还是比较简单的
    中间还问了一些原型的问题,我就拿着笔在纸上画了一些理解的东西给他看

  3. 问了一个最简单的正则的问题,我回答平时只是用的时候会去查查,然后问了俩简单的。刚好会
  4. css的盒子模型,正常跟不正常的两种
  5. 由于中间我提到了一些自己对于性能的问题的理解,他就让我说一些性能的优化,我说自己整理过一些,看过那个《网站建设指南》,里面一些基本的东西,自己平时还会注意比如变量的缓存,闭包,setTimeout的问题,还有就是图片最好一开始设置大小。防止后面突然加载进来之后的重绘的操作,然后还说了一些对于那些经常触发的事件,要控制好频率,比如onresize的事件,然后面试官让我写一些代码。然后==!很尴尬一下子卡住了
  6. 浏览器输入url后发生的事情,比较老套的问题,把我知道的都说给他听了,从dns开始查询。中间他问道有个建立链接的过程呢,我说是不是三次握手四次放手,然后补上细节的东西确实没有细学
  7. 然后我扯了一堆自己关于前端的想法还有感受
  8. 还问了几个老套的关于布局的问题。比如左边定宽右边自适应等等的问题
  9. 貌似还提到了bfc的用处还有就是bfc的原理
  10. 问了我平时是怎么学习前端的知识的。如何在后期稳定持续的学习上去,如何来提高自己的编码能力

总结:感觉回答的挺好的,技术问题准确说来应该就一个没回答上来,然后还跟面试官扯了一些自己的体会跟想法,貌似把他忽悠住了

###二面###
这面比较神奇,因为遇到了一个很特别的面试官,他主要做的就是你来选点,他来问你你是怎么发现这个问题,怎么解决这个问题

  1. 当时一看到我有一个整理的博客,然后就说直接看你写的东西好了,问你现在最想介绍这里面的哪个文章给我,我就说我印象中比较深的一点事情,然后了博文中整理的那个关于setTimeout的这个点的发现,有点印象很深刻
  2. 问到如何把一件产品做的更好,你会怎么做,我想了一下,首先说了一点前端需要做好一些技术上工作做好性能的优化,然后再提到应该参与到产品里的工作,提出自己的想法,然后就一点一点来问。我具体是怎么做的,有什么例子可以来说明你做了这些工作
  3. 最后我也向他问了下他们在node这方面是怎么在做的,他很nice,细心给我解答了一些他们的工作,一些里面用的技术细节,比如ps里面的东西可以用js来操作等等

这面很奇怪更多是在跟面试官探讨一些东西,至于边上的hr。貌似就是在打酱油,最后随便问了家里情况。

总结:我还是相当喜欢这样的面试官,给人感觉很nice,毕竟技术的东西再怎么样总有你不会的盲点,最后顺利拿下了offer,最狗屎的一个

##面试二##

###笔试###
下班后跟小伙伴打车过去打了个酱油,题目还是很正规的那种,全是前端的题目,不像某公司的笔试,前端做哭了,感觉还不错,有关于闭包的东西,有关于移动端的东西就是手机端如果可以无限内容如何不让手机崩溃(这个我是随便猜的,不过最后看了结果,貌似猜对了),还有关于opcity,还有console等等的东西,题目感觉还是很基础的,最后貌似看到成绩==!50多分,但是面试官说貌似还不错的成绩

###面试一###
果然是做技术的公司就是不一样,深深被折服了

  1. 问了有关position的问题,由于之前准备过了,所以按自己的理解解释了一遍
  2. 盒子模型
  3. 对笔试试卷中的一个有关闭包的问题进行的引申,主体是关于缓存的机制,我说用闭包保存参数还有结果;接着面试官又提到那如果现在这个函数应用到很频繁的情况下,还是要经常计算,效率不高吧;我说要不用一个数组来保存这些对象,然后她说那有可能连续很多都没重复不是也不高么,我突然接了一句。我说把数组定长,然后满了的时候把那些最少用的给剔除,他说怎么来实现呢,我回答用个conut来标记下,每次排序去掉最小的,他说每次么,效率不高诶,我后来想了想说就慢的时候,用一次的遍历来查找。貌似他感觉还好,但还不是他满意的答案。她说关于缓存的东西操作系统里应该会教过的==!我说真没印象了
  4. 然后又问了个给你个节点。你把所有的节点遍历出来,然后我就写了一个,,他看了下,说这样是可以,那如果我现在的节点很多,只要找到其中一个节点就可以停止了,你怎么做;我想了下问是类似递归么?他说可以,写完之后他说你这样貌似是深度优先做的,那写一个广度优先的,然后我写了一下。大致写了主要是思想,这个题目貌似答的还不错
  5. 问了点性能优化,然后我就按照自己的印象说了一些,我又说其实我之前有整理过的一些,他说,他知道++!在看,好紧张
  6. 问了事件的代理,我怎么来做,我给他解释了下我的思路,然后他想了一个应用的场景给我,我大概说给需要绑定的事件加个class再来判断,貌似没有让他很满意,然后我说下我如果遇到这样的场景会怎么来是实现,貌似还行

总结:果然是风格不一样,偏重于编程能力还有算法,跟上面的偏重于产品什么的不一样,技术为主,感觉面的还是挺顺利的

###面试二###
面的不好,应该是挂了,面试官人超级赞,了解下我的情况,跟我聊了聊其他的东西,然后我也说了。缓解了下紧张,由于一开始犯2了,提了下用过他们公司的一个库,然后他问你知道那个是谁写的么,我说难道就是你们?他说对,还有昨天面试的那个一面面试官几个人一起的,我去,刚好撞上了,ps:第一次离开源库的作者这么近的距离

他说既然你提到这个库了,问了个问题,关于数学的。给跪了,他让我用程序的角度去实现,一直不开窍,最后他说了出来,真是跪了。这样风格的问题,真是想不到

  1. 让我实现一个居中,先说父元素是定宽高的,我说直接position :aosulute,父元素position:relative,她说为什么要父元素设置呢,我回答了下,然后又继续问那父元素不是定宽高的怎么办,我又说了个方法,不过貌似回答的不是很好,而且有点忘记了==! 之前还整理过的。唉。
  2. 然后又问了下单行字符过多的时候用省略号的时候怎么实现==!,我之前做的时候都是临时找,没有好好记,这回吃亏了吧
  3. 问了haslayout的问题,我说我看过但是没有很理解,意思就是让他别问了==!我说我看过一点bfc的东西
  4. 问我会那些hack,我写了俩,然后说还有呢,我说我基本不用hack,她说确实实际不怎么用
  5. 问我会正则么。我说基本不用,用的时候再去查找
  6. 给我一个字符串[1,2,2,5,’5’,’’]怎么去重,我说我遍历两次,第一次放到一个对象中,类似key-value的map的方式来存储;面试官说那这个5跟’5’你还能区分出来么?我说哎呀没看清,然后我又想了一会,说要不直接给每个KEY数值+1,这样可以区分5跟’5’,面试官说可以么?==我又不确定了,然后她说笔试题里的那个console的题目做的很差,我说恩;他提示到这个keymap的方式是对的,后来我又想了一会,说我有个馊主意,不知道可以否,说对于这些key值,我采用字符串拼接的方法typeof key +key的形式,他回答说可以
  7. 然后问我随即生成1-100之间的随机数,我说math.random里生成0-1之间的随机数,然后取整,但是我没记得具体的函数的名称==,好尴尬,然后说让我排序下,我说对整个array进行一次sort,他说这样sort对么?我说对,她说不对,这样的按照字符的进行排序,我说那可以在sort传一个具体的排序函数,他让我写下,我说我只知道这个点,但是没试过,所以忘记了
  8. 还问了一个this的问题,我觉得好失败==,这类的问题都挂了,估计给面试官的印象超级不好了把

总结:面试官最后问了我下,你感觉面的怎么样,我说不好,他说也不好==!恩,这就是挂的节奏了,他说我的笔试跟一面都挺不错的,但是这二面的水平,估计换成一面也要挂,说我基础还是略虚,特别是css方面