前端面试题-滴滴一面

1、先手写代码

//写闭包

var cal = counter();
   cal();   //num=?
   cal();   //num=?
   var cal2 = counter();
   cal();   //num=?
   cal2();   //num=?
   function counter(){
          
   
       var num = 0;
       function add(){
          
   
           return num++;
        }
        return add;
   }

说一下每次的num,并解释原因。

2、说一下继承

写一个并进行讲解 我写的是组合构造式继承,并且改进,这个缺点主要是构造函数new了两次,改成组合寄生式,并且说了其优点。 Object.create(),自己手动实现,不用api。

3、说一下布局

水平和垂直方向居中 我说了两个,一个是利用flex局部,一个是利用transform,这两个都是针对高宽不确定的进行水平和垂直居中。

4、接着进行布局:

float有什么值,作用是什么? 一个inline的元素,一个block的元素,怎么实现让他俩一行。

5、接着谈布局

文字水平垂直居中text-align,line-heightyiji base-line的用法。

6、接着说flex

三个块元素,flex-grow分别设置为1、2、3,会怎么样展示。 把中间元素宽度设置为固定宽度为200px,那么剩余的空间怎么分配的? flex:1;这个是什么呢意思? flex-grow 以及flex-shrink flex:是有三部分组成的(flex-grow flex-shrink flex-basis)

7、说一下二分查找

远程面,这个进行实现代码,并且调试

8,说一下你了解的es6

let、const、箭头函数以及promise,promise外部无法改变它的状态,那么内部能改变它的状态吗?

经验分享 程序员 微信小程序 职场和发展