美文网首页
2017.3.25-2017.4.12网易前端实习笔面试

2017.3.25-2017.4.12网易前端实习笔面试

作者: 云峰yf | 来源:发表于2017-04-13 08:12 被阅读0次

    笔试

    总的题型是20道单选,一道问答,三道编程,两个小时。

    单选前端知识和计算机基础对半分,前端那部分没什么好说,都是老生常谈,不难,计算机基础涵盖数学操作系统数据结构网络原理甚至还有linux都有涵盖。

    印象最深的题是一个有7个元素的栈有几种出栈方式。

    问答题是给一个成绩表格,点击分数可以排序,第一次正序排第二次倒序排。

    编程题的编程环境有点坑爹,你要知道用他给的输入接口。还好,结束前两分钟全部AC了。

    第一题:是一个集合相关的问题,理清逻辑很快就可以写出来

    ```

    //第一题 集合

    function xyf(arr) {

    var w = +arr[0];

    var x = +arr[1];

    var y = +arr[2];

    var z = +arr[3];

    var p = [];

    var q = [];

    // console.log(w,x,y,z);

    for (var i = w; i <= x; i++) {

    p.push(i);

    }

    for (var j = y; j <= z; j++) {

    q.push(j);

    }

    var result = [];

    //这里可以优化,解构交换?

    if (p.length > q.length) {

    for (var i = w; i <= x; i++) {

    for (var j = y; j <= z; j++) {

    result.push(i / j);

    }

    }

    } else {

    for (var j = y; j <= z; j++) {

    for (var i = w; i <= x; i++) {

    result.push(i / j);

    }

    }

    }

    //集合去重

    return result.filter(function(item, index) {

    return result.indexOf(item) === index;

    });

    }

    ```

    第三题是我第二个做的,因为第二题我认为是最难的。就是一个反向去重。

    ```

    //第三题,倒数去重

    function xyf(arr) {

    arr = arr.filter(function(item, index) {

    return arr.lastIndexOf(item) === index;

    });

    return arr.toString().split(",").join(" ");

    }

    ```

    第二题我笔试的时候用了eval,后来觉得现实中不会这样用,很不安全也耗性能就又改了一下

    ```

    //第二题 奇怪的表达式 不用eval的话还需要解析+*-然后switch

    function xyf(str) {

    var oldTime = Date.now();

    if (str.length === 1) {

    return str;

    }

    //第一个参数

    var first = str[0];

    //存储表达式的数组

    var arr = str.match(/[*+-]./g);

    //结果

    var result = eval(first + arr[0]);

    var index = 1;

    while (arr[index] && index < arr.length) {

    var newStr = result.toString() + arr[index];

    result = eval(newStr);

    index++;

    }

    var newTime = Date.now();

    console.log(newTime - oldTime);

    return result;

    }

    // 性能好很多,但代码长了很多

    function xyf(str) {

    var oldTime = Date.now();

    if (str.length === 1) {

    return str;

    }

    //第一个参数

    var first = str[0];

    //存储表达式的数组

    var arr = str.match(/[*+-]./g);

    //结果

    var result = cacl(first,arr[0].substring(0,1),arr[0].substring(1));

    var index = 1;

    while (arr[index] && index < arr.length) {

    result = cacl(result,arr[index].substring(0,1),arr[index].substring(1));

    index++;

    }

    var newTime = Date.now();

    console.log(newTime - oldTime);

    return result;

    }

    function cacl(num,exp,otherNum) {

    //理论上这里要做输入类型判断

    num = parseInt(num) ;

    otherNum = parseInt(otherNum) ;

    switch (exp) {

    case "+":

    return num + otherNum;

    break;

    case "*":

    return num * otherNum;

    break;

    case "-":

    return num - otherNum;

    break;

    default:

    throw num,exp,otherNum+"error";

    break;

    }

    }

    ```


    面试

    大约是6号,我接到猪厂的12号的面试邀请。没的说,马上买了昆明到杭州的往返机票。

    期间参观了猪厂的各个建筑,总体感觉猪厂还是很注重员工待遇的。食堂和一天包五餐就不说了,一应俱全的硬件设施和娱乐方式,甚至加个班还有酒店级待遇。

    我的处女面,就这样给了黄易,面试前的准备重点也在自己的项目、算法和es6上面,和面试官的关注点不一样。

    不过也让我汲取到一个教训:校招还是非常注重基础的。

    好了,回到正题来。

    一面:

    一面基本上是沿着简历问的,做过的项目,使用过的工具,和上面列的名词基本都问了。点到为止,不做过多的纠缠,我多说了反而被面试官打断。

    比如说:

    你在项目里使用了xxxxxx这个框架,为什么不用xxx和xxxx?它们分别解决什么问题?

    你说你在项目里碰到了xx问题,那么具体是怎么解决的?

    css选择器有哪些?

    restful是什么?

    ...

    ...

    然后聊完简历后面试官出了个题:手写左固定右适应的布局并且点击其中的列表项会alert出内容。

    我html部分是用了section,css用flex布局,js本来遍历一下li元素逐个加上事件就好了但我偏要作死,用了个事件委托,结果把自己搞进坑里了。之后在讲解代码的时候考官呵呵一笑,还认真地询问我,捕获阶段真的是这样的?一面就跪在这了。

    二面:考官一上来扔过来一个题。有点变态,因为这道小小的题考察了作用域、提升、闭包、原型链、new关键字、this、优先级等诸多js知识点,后来我查的时候发现是一道网上真题,还有人专门为这题分析了一遍。

    链接如下:

    题目解析

    我直接就懵了,做了一会就直接和面试官说有点难,需要想一下,然后他就去上厕所了,说你慢慢做。

    过了几分钟,他回来了,我说这个题应该是考原型链,然后巴拉巴拉分析了我给出的答案,之后去搜这个题对答案,没想到后面搜的时候发现考的点太多了。这个题之后考官问了跨域和性能优化的事情,我随便答了几句就结束了,最后问他评价,他说基础不行。哎,我写ts写惯了,已经不怎么关注js原本这些奇葩的特性了,自然就跪了,事后恶补了《你不知道的Javascript》,才算进一步认识JS这门语言。

    三面hr基本都是些套路

    什么你为什么报考你这个大学你这个专业?

    为什么选择来网易来杭州?投了其他企业吗?

    你有女朋友吗?以后打算怎么安排?

    ......

    最后我问了HR时间上能不能宽松些,因为云南大学大四还要上一个月课,HR说到时候会想办法的,我估计时间问题也是我跪的原因之一。

    总之,网易对校招生的要求就是基础知识一定要理解透彻理解的深。像我这种习惯了各种语法糖和新特性,使用惯了库的人还需要多补补基本概念。

    相关文章

      网友评论

          本文标题:2017.3.25-2017.4.12网易前端实习笔面试

          本文链接:https://www.haomeiwen.com/subject/dlnvattx.html