美文网首页
滴滴出行实习面试心得

滴滴出行实习面试心得

作者: EWL | 来源:发表于2017-12-18 14:53 被阅读0次

    1、对于js的异步 单线程机制的理解
    面试官举例:setTimeout打印123的问题

    答:大致就看一下这个文章
    我当时回答这个问题的时候就有点智障,没搞明白面试官到底在问什么,然后就想当然地问东答西了。还是要多思考一下面试官到底想问什么,就算没明白可以多问一句,您的意思是指?(礼貌一点的问,面试官应该会给解释自己的问题的点在哪里)

    2、闭包是什么 你是怎么理解的

    我个人的回答就是解释了一下闭包的应用,对于私有变量的处理什么的,不过可以回答的更细致一点,参见阮一峰老师的学习笔记
    闭包特别重要,我答得不算好,没解释闭包是啥就开始说能用在哪里,还是应该把原理说清楚,然后举例,不然会给面试官造成一种只知其然不知其所以然的感觉。

    3、js的底层渲染

    还是放个帖子
    这个我之前确实没好好去想过,这次算是长记性了,再底层的东西,往深了挖掘都会得到新的理解和认识。

    4、匿名函数是什么?

    参考mdn上的概念理解,

    5、this是啥?怎么用的
    放一下mdn上的文档
    this的定义是啥,我最开始确实没考虑过这个问题,只知道有四种调用模式,方法调用模式函数调用模式构造器调用模式apply调用模式

    第一种应该是最简单的了:

    var obj = {
      value : 12,
      method : function(){
        return this.value + 3;
      }
    };
    

    很显而易见了,不做过多解释,都明白,具体参见《javascript语言精粹》28页

    第二种,肉森老师演示过很多次了

    var page = {
      data : {
        num1 : 1
      },
      onLoad : function(){
        var _this = this;
        $(document).on('click','#div', function(){
          console.log(_this.data.num1);
        });
      },
    };
    
    

    第三种,感受一下肉森老师写的分页组件,里面有用到这个方法,简写一下用法:

    var Pagination = function(num){
       this.pageNum = num;
    };
    Pagination.prototype.getPage = function(){
      return this.pageNum;
    };
    var newPagination = new Pagination(12);
    console.log(newPagination.getPage());
    
    

    第四种:就是apply和call的用法了,具体不说了,还是说说bind,为什么呢,我被问了,但是我只知道原理,没用过,很尴尬。
    还是放个帖子
    而且谈及apply call 以及bind的区别,还是放个帖子

    6、改变this的值,应该怎么做?

    参见上一题

    7、匿名函数的this指向哪里?

    window,我猜的,但是没想到猜对了,但是严格模式下还指向undefined,详见《js高级程序设计》,但是我觉得这个问题还有的深挖,先放着,之后继续看。

    8、为啥要把js文件放到body最后?

    优化嘛,这个地方其实还可以提一下defer和async以及合并脚本啥的。
    看个帖子
    讲的很详细
    简言之

    image.png

    9、http协议的了解

    协议还是得好好看看,这就不展开说了,多看书,书上都有。

    闲聊的部分就不多说了,总结多看书,看好书,不仅限于技术类,人文历史啥的也多看点,不能除了代码就胸无点墨了,说给自己听,也与大家共勉。

    相关文章

      网友评论

          本文标题:滴滴出行实习面试心得

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