美文网首页
一年经验前端面试记(二)

一年经验前端面试记(二)

作者: 如意同学Try | 来源:发表于2018-02-27 14:52 被阅读0次

    这次一天时间面了两家公司,而且都是非常干脆地直接给了offer。
    一家做编程教育平台,即将进入A轮。人数大概30人左右。不过公司业务我是非常喜欢的,一直都有一个老师梦。

    技术聊天过程非常愉快,没有涉及到基本的面试题。技术哥哥是校友,比较看重我的简历。着重提问了我在学校的项目,挑战杯,大创,分别都负责什么事情,为什么要去做这件事,是不是负责人等等比较细节的问题。也很欣赏我组织前端分享会的经历。同时也和我详细地说明了公司的业务以及未来的发展规划。

    而且让我比较感动的一点是,他们在面试我之前详细地看了我的博客和github,还能直接说出我的项目。让我有了分量很足的尊重感。

    之后和CEO聊,他的重点是,我对自己的规划是不是和他们的发展一致。给我的感受是,他们需要的不是只在技术金字塔的人,而是愿意和他们一起走下去的成员。

    由于和前端相关的技术涉及不多,这家公司的描述就到此。

    另一家是做互联网旅游,办公地址就位于西溪景区之中,环境可以说是万里挑一了。下午3点一直到6点,最后hr姐姐还顺路送我到公交站。真的很感谢,两轮的技术面试官应该都是团队成员,都非常亲和。走的正常的笔试面试流程,不过问的内容相对也比较基础。只能说有惊无险了。

    贴上过程

    笔试

    笔试题都比较简单,考察基本功,我写的比较顺利,涉及到同源和跨域、原型链、vue的基本使用、设计几个简单的函数,我就贴一下稍微印象深刻的题目

    1. vue和Jq的区别

    vue:数据驱动渲染页面,不需要操作具体的dom,页面与js耦合性弱,易于维护

    jquery:依赖于dom,页面逻辑和代码逻辑一致,页面和js耦合性高
    两者的设计思想是完全不一致的,应根据不同场合和需求选择合适的框架

    2. 设计一个函数,传入一个数字n,若n可以被3整除的返回1,可以被5整除返回2,可以被7整除返回3

    这个题目我在做的时候就觉得有问题,如果一个数既可以被3整除又可以被5整除呢?应该返回多少?题目并没有明确说明,我就猜测这可能是要考察输入校验

    function Ajust(num){
        if(typeof num !== "number" || num === null){
           //排除输入为空,以及输入非数字数据
            return false;
        }else{
            if(num!=0){
               //排除0
                if(num%3 === 0){
                    return 1;
                }else if(num%5 === 0){
                    return 2;
                }else if(num%7 === 0){
                    return 3;
                }
            }else{
                retrun num+"不能被3,5,7中任何一个数整除"
            }
        }
    }
    

    面试的时候我提出了我的疑惑,面试官也一头雾水,所以我只能下结论是他们的题目有bug了

    3. 小狗(Dog)叫声“wang”,小猫(Cat)叫声"miao",他们同属Animal。请用原型和对象的知识写出他们的关系

    原题可能还要复杂点,记不太清了,考察原型链和对象

    //构造函数
    function Animal(){
       this.word = "";
       this.say = function(){
           return "say " + this.word;
       }
    }
    
    var Dog = new Animal();  // 实例Dog
    var Cat = new Animal();   //实例Miao
    Dog.word = "Wang";
    Cat.word = "Miao";
    

    面试

    1. 基本数据类型有哪些

    null,string,boolean,undefined,number

    2. http返回的请求有几种?分别代表什么含义

    1xx:信息状态码
    2xx:请求成功
    3xx:重定向
    4xx:客户端错误
    5xx:服务器错误

    4. 是否了解解构赋值

    看过文档,主要包括赋值的模式和变量值,可以使用数组或者对象的形式对给定的变量进行赋值。然后举了个例子

    const {a,b,c} = {a:"1",b:"2",c:"3"}
    
    5. require和import有什么不同

    import用于引入外部模块。
    require不仅可以引用文件和模块,而且使用位置不受限制,可以在代码中使用

    6. 是否了解promise

    看过文档,在ES6中编写为原生标准。是一种异步编程的解决方案。Promise有三种状态,pending(进行中),fulfilled(成功),rejected(失败),后两种合称为resolve(已定型),一旦状态定下,就无法发生改变。

    7. ajax请求如何把异步改为同步?

    ajax方法中有一个控制异步的字段"async",默认为true,表示异步。改为false之后就为同步

    8. 函数中的This指向什么?

    指向调用函数的对象。
    面试官对我这个回答也并没有说什么,不过之后看来我这个说法也并不严谨,关于this的指向又是一个可以长篇大论的点了。
    我先贴上红宝书上的说法:this引用的是函数执行的环境对象
    有更多的想法可以看这篇文章从这两套题,重新认识JS的this、作用域、闭包、对象@相学长

    9. apply和call可以做什么?有什么区别

    改变this指向。两者作用基本一致,区别在于接收参数的方式不一样,apply用数组或类数组的形式接收参数

    10. 左边定宽,右边自适应布局;中间定宽,两边自适应布局
    • 左定宽,右自适应:
      左部定宽,右部浮动,左外边距设为左部宽度
    • 中间定宽,两边自适应:
      margin:0 auto
    11.html5和css3有哪些新增特性

    html5:音频,视频,canvas,svg,等多的语义化标签等
    css3:圆角,动画,滤镜等

    hr面

    hr姐姐真是太亲和了,全程跟我聊旅游,去了哪些地方,有哪些好玩的好吃的。知道我是温州的,更是停不下来,说很久以前去过温州的一个岛,从岛上风土人情讲到自己的职业规划。我就在一边微笑点头。恩,对对,是的,没错

    最后hr姐姐还顺路送我到公交站。真的很感谢。

    二战还算顺利,给了我这个小菜鸟很充足的能量,让我觉得我还不算太差

    相关文章

      网友评论

          本文标题:一年经验前端面试记(二)

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