下面说说究竟今天发生了什么事情,才让自己的脾气那么好的人,要来轻轻的吐槽一下。
今天很开心的去面试百度校招,百度真的是我特别想要去的公司,因为fex的原因。其实是非常喜欢fex的技术氛围的。
进入正题吧!
一进过,叫我来个自我介绍,然后问问我觉得前端方面做的最好的项目,我就把在一号店实习的时候做的七周年的两个活动游戏页面说说。
然后和那位帅哥说说,我在这里遇到的坑,简单的描述了一下,transform的translate3d的z轴如何影响z-index的,在不同的浏览器的效果都是不一样的。事情到这里还是挺愉快的。不过这对于面试官来言可能简单了点,但是当时处理这个问题的时候花了一下午就调试这个bug。
然后面试官问了如何写函数继承的代码实现,说实话,我当时确实卡住了,因为在我实习过程中没有遇到要写这个东西。面试官之后换了一个问题。下面回公司后给出方法
function extend(child, father){ var f = function (){}; f.prototype = father.prototype; child.prototype= new f(); child.prototype.construct = child; }
然后问了一个问题,问这样会输出什么。当时我居然傻逼的认为是123end.但是是由于js的单线程的原因,会一直死循环。
var t = true; setTimeOut(function(){ console.log('123'); t = false },1000); while(t){} console.log('end');
然后在问了一个问题,当ajax异步请求的时候同时发出了三个请求,如何检测到三个都结束了。
我说我会定义一个全局变量数组,来存储三个ajax 的状态,每次响应结束来更改他的状态。
然后他所还有其他的方法么?我当时就蒙了,因为我一直没有遇到这样的问题,所以也想不出第二个方法。没有想出来,然后就说不知道,重点就是我的不知道,稍后会说。他说nodejs会经常请求这样的大量数据。然后也没有告诉我第二个方法。
然后就是,如果没有控制台的话,你如何调试程序。
我说用alert弹出,或者打印数据到页面中,然后根据业务预期预估哪里出错也就是肉眼排除bug。然后他说初次之外还有其他方法么?,我说不知道,重点是我的不知道,后面会讲为什么是重点。他说你要在页面中一行行注释script确定是那个文件出错,然后再在相应的文件找bug。
然后问了一个如何数组去重。查重 去重 考虑哈希
我写了两次循环,将没有重复的数据插入到一个新的数组。
然后他告诉我,你有其他的方案么?或者更好的优化方案,我想了大约10多分钟,没有想出来,然后就说不知道,重点就是我的不知道,稍后会说。
然后大概他就不想跟我说话了吧,问了我一个问题就是你有什么问题要跟我说的么?
我说你认为的前端工程师和我有哪些差距。他说你可能基础知识弱了一点,我们百度会经常自己用原生的js来实现一些东西。然后就是需要你举一反三地思考一问题,比如前面,你不能说你不知道。
然后就到此结束。。总的来说还是比较不愉快的面试经历吧。
现在就是前面说的我不知道的问题
为什么我不能说不知道,我说我不知道,不是我遇到困难就退缩,只是当时确实不知道,不想在面试的时候这样僵持下去,真的不是酱紫,在一号店实习的6个月内,我遇到难题,都是会利用现有的各种资源,能够快速解决bug,提出新方案。我的leader 都很认可我快速解决问题的能力,每次完成项目都保质保量的超过预期很多的时间。我的另外一个实习生,他经常遇到bug。每次都是我过去很快速的定位问题,解决问题。这次面试没有问过我任何html css问题全是js。可能关注点不一样吧`~
话说面试时结束了,虽然一面就挂了,但是我不会就此停止我学习的脚步。经历没有那么丰富,但是我相信我会很快速的成长起来。能够创造出好玩,有意思的东西。