2018 春天跳槽季的笔试题

又到了一年的春天跳槽季(感觉年底才是最好的跳槽时机),无论要不要跳槽,浑水摸鱼,趁机面试几家也是好的。

position: absolute和position: relative是相对什么进行定位?

See the Pen relative and absolute by zeng (@zengxiaoluan) on CodePen.

给未知宽高的元素垂直居中有哪些方法?

See the Pen Center and Center by zeng (@zengxiaoluan) on CodePen.

请输出以下函数的运行结果?

function test() {
  console.log(a);    //undefined
  console.log(foo()); //2
  var a = 1;
  function foo() {
    return 2;
  }
}
test();

这题比较常规,没啥好说的。

var z = 10;

function foo() {
  console.log(z);  // 10
}
foo();

(function() {
  var z = 20;
  foo(); // 10
})();

(function(funArg) {
  var z = 30;
  funArg(); // 10
})(foo);

闭包的考察。

function createConsole() {
  for (let i = 0; i < 3; i++) {
    setTimeout(function() {
      console.log(i); // 0,1,2
    }, i * 1000);
  }
}
createConsole();

这题主要是作用域和作用域链的考察,函数的自执行就相当于一个闭包,所以在自执行的函数里无法改变闭包外的变量值。


var fullname = 'window';
var obj = {
  fullname: 'obj',
  prop: {
    fullname: 'prop',
    getFullname: function() {
      return this.fullname;
    }
  }
};
console.log(obj.prop.getFullname()); // prop
var test = obj.prop.getFullname;
console.log(test()); // window

这题主要是 this 的考察,js 里 this 的值是依据执行作用域动态绑定的。

console.log(1);
setTimeout(function() {
  console.log(2);
}, 0);
console.log(3); // 1, 3, 2

异步的考察

function C1(name) {
  if (name) this.name = name;
}

function C2(name) {
  this.name = name;
}

function C3(name) {
  this.name = name || 'john';
}
C1.prototype.name = "Tom";
C2.prototype.name = "Tom";
C3.prototype.name = "Tom";
console.log(new C1().name); // tom
console.log(new C2().name); // undifined
console.log(new C3().name); // john

这个题目里面有些坑,需要注意一下,原型链的考察。

// 请实现一个函数sum,这个函数每次执行时会在控制台输出函数已经执行的次数。

// 要求:不允许有与sum同级的变量存在。

var sum = function () {
    var count = 0;
    return function () {
        console.log(count++)
    }
}

var f = sum()

f()
function fn () {
    for(var i = 0; i < 4; i++) {
        let timer = setTimeout(function(i, timer) {
            console.log(i)
            clearTimeout(timer)            
        }, 10, i, timer)
    }
}

fn()

 

总结

去年我面试做这些题目的时候,还有些不知所措,如今看看觉得还挺有意思的。蹉跎岁月,总有点改变。

作者: 曾小乱

喜欢写点有意思的东西