凡科面试总结(秋招)

凡科(2017.9.4)

秋招的第一站,其实上半年去面试的第一个公司也是凡科,现在也是从这家公司开始,也算一种缘分吧。

面试前

看红包书(关键),当然也会去归纳总结网络中的面经等。后来我才知道,我这次面的是互动组,主要有两个方面的业务——游戏还有平台。平台他们用的是angular,游戏的话用的是jQuery。平时他们使用原生的JavaScript比较多,所以比较看重基础,那些框架只是一个辅助的作用,这也是为什么面试的过程中问基础问了好多

今天请了一天的假,早上大概八点出门(约的是十点),吃早餐、搭地铁,到公司的时候也就是九点十五分作用

笔试加一面

自己做的时候比之前顺手了很多,但是还是会有不如意的地方,特别是第二题,闭包的解释不够清楚

先说第三题:
主要考察的是CSS选择器的优先级,这个自己答得还可以

第四题:
数组去重,自己做得还可以(因为之前特意回去都总结了一遍)

第五题:
对代码提出意见,自己做得也还好

关键就是下面两道题了:
第一题:

function print(){
    var arr = [1,2,3];
    for(i=0;i

输出的应该是 4 1 2 3
自己的答案:4 1 2 3 5 1 2 3 6 1 2 3

错误原因:没有注意到print函数中的i是全局变量,从而导致了错误

当自己发现了i是一个全局变量的时候,自己其实还说了另外一个答案——4 1 2 3 6 1 2 3 6 1 2 3,真的是傻逼了,其实第一个for循环第二轮中的i值已经为3了,所以跳出循环了。

function print(arr){
    var result = [];

    for(var i=0;i

结果:

凡科面试总结(秋招)_第1张图片
i值

另外,考官还问了一个问题:

凡科面试总结(秋招)_第2张图片
额外题目

其实就是输出了0,自己这里也答错了

这道题主要是考察了全局变量,作用域等知识

第二题:

function print(arr){
    var result = [];

    for(var i=0;i
凡科面试总结(秋招)_第3张图片
答案

首先,这道题考察了闭包,但是执行完这个函数之后返回的是一个数组,数组中包含5个函数,这5个函数都是console.log(arr[i]);。因为闭包的原因,所以导致执行到这一句的时候i值已经变成了5,所以输出了undefined。

自己的笔试结果是对的,但是回答的时候,没有回答好,首先面试官问temp是什么的时候,自己就一脸懵逼了,虽然后来答出来是一个数组,里面是5个函数,这个是对的。

扩展问题:
闭包成立的条件
我的回答是函数中嵌套函数,面试官对这个答案不是很满意

凡科面试总结(秋招)_第4张图片
百度上的答案

设置成立即执行函数之后的输出结果是什么?为什么?
更改成立即执行函数后

凡科面试总结(秋招)_第5张图片
更改成立即执行函数后

答案:

凡科面试总结(秋招)_第6张图片
答案

我的回到是输出1 2 3 4 5
但是理由讲的不清楚,关键是自己也不是很理解

其他问题:

凡科总结:
1.闭包问题的时候,自己对闭包的不够了解,导致第二道题讲的时候自己很没有底气,虽然最后是有答到一些点上,但是改成立即执行函数以后为什么可以这个答得模棱两可,问题的根源在于基础知识不扎实

2.生成一个空的数组的方法,new Array()跟直接等于[]的区别

var arr = [];//这是一种字面量定义数组的方法
var arr = new Array();//调用构造函数生成的数组

区别:用new关键字去开辟一个存储地址是比较耗资源、耗内存的。而字面量方式直接去内存开辟存贮字段相对简单,不耗那么多资源

其实上面讲的差别不大,从另外一个角度(语法角度),new Array 可以直接设置数组长度。比如new Array(8)

3.第一道题目中主要是考察全局变量i,在各个位置的输出结果,这里还是答得不够

4.将一个div放在一个窗口中,位置的怎么放。
答:取得窗口的宽高,然后用Math.random()得到随机数,然后乘以宽高,得出的值用于position:absoluted中的left还有top中

5.现在是放100个div,你又要怎么做?
答:还是通过3中提到的方法,但是需要判断它们有没有重叠
追问:如果一直重叠怎么办
答:设置一个次数,如果超出这个数的话,停止操作(感觉这里有bug),这个问题还需要进一步的请教他人

6.动画效果, (这里是开始问的)这部分是自己薄弱的地方,所以没有答好
自己的答案是通过transition,但是并没有回答好,所以这个方面还是要不断的总结和归纳
CSS3 Transitions, Transforms和Animation使用简介与应用展示

7.滑动到页面的某个位置,然后刷新以后,这个页面还在这个位置,你要怎么实现(自己回答了通过本地存储),却不知道在哪个节点存储这个节点的位置,其实就是事件处理
答:自己说可以通过本地存储将此刻的坐标记录下来
追问:什么时候记录
答:刷新之前,但是刷新之前具体要那个事件?怎么操作,自己没有回答出来,这个要请教一下大佬

js记录页面的点击位置并在页面刷新后滚动到该位置

参考文章

8.jQuery相关,什么是事件代理?JQuery怎么完成事件代理?
答:delegate,live,on,bind

9.垂直居中的方法,position:absolute中不设置top.left的话,怎么布局,只设置top不设置left又会怎样???
答了四种,但是忘了答最容易的以一种——height==line-height

二面

一面结束后等了几分钟后到了二面
1.你在做项目的过程中遇到哪些问题?
回答了webview打开窗口的问题,vue.set,还有二维码页面的bug
因为平时养成了写博客的好习惯,这里回答得不错

2.了解java?sql?linux
我说看得懂后台代码,sql语句基本的增删改查,数据库设计了解,对Linux不是很了解
追问:他又问了怎么java中怎么判别两个字符串相等
答:就说了==

其实判断java中两个字符串相等应该使用equals,而不是==,又给自己挖坑了

if(A.equals(B)){

}

原因是因为java是对象类型,所以不能简单的通过“==”来判断

equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等。即使它们内容相等,但是不同对象的内存地址也是不相同的。

3.两个鸡蛋,测试破碎临界点,怎么优化你的代码
答:从一楼开始试,一层一层的试,当最后破碎的时候,它的前一层就是临界点
优化:因为有两个鸡蛋,所以可以隔一层去试,当它破碎的时候,再用另一个鸡蛋去试前一层,若不破碎,则为该层,若破碎,则为前一层

4.为什么要选择离开你原本的公司
答:想了解学习更多的东西

5.类型转换,一个数组等于[3,4,5]那它==字符串3,4,5么
答:相等!调用了toString()方法,

追问:那设置一个函数,将一个数组放进去,那么实战出来的结果等于字符串345
这个到现在我也不是很理解面试官的意思

凡科:9.11更

凡科面试总结(秋招)_第7张图片
被刷了

秋招的第一家公司,被刷了,加油吧

  • 基础不够扎实

你可能感兴趣的:(凡科面试总结(秋招))