此博文有毒,慎点!!!
阳光夹杂着微风渗进了屋内,轻抚着坐在工位上的我,而此时的我是心怀愧疚的,因为我正在写着一篇不那么像技术文章的技术文章,而且还变成了赤裸裸的标题党......对于此,我只能恳求您暂时收起板砖,容我慢慢道来,向您诉说这文章由来的前因,说完了,再拍我也不迟 。

事情得追溯到去年的12月份,那时候的我还是一个懵懂无知的小前端(其实现在也是)。一次偶然的机会,让我收到了来自百度的面试邀约(详情请看我另一篇博文:实习offer到手记),很幸运的通过了面试,拿到了第一份实习offer。来到百度,感叹大公司开发流程的同时也见到了许许多多的大神,从这方面来说也算是不枉此行了。

时光如梭,转眼间三个月过去......

因为个人原因毕业不打算留在百度...所以早早的打起了小算盘,投了AT两家。T内推期间接到了一次电话,和面试官聊了几句,他们打算要我过去写CSS,可我是想往JavaScript方向发展的,最终因为实际和需求不符不了了之了。可悲的是到现在也没再接到T的电话...估计简历已经在简历池泡腐囊了...

A很荣幸的接到了阿里云数加团队的电话,面试官都很nice,不过三面面试官问了我很多操作系统的问题...不明觉厉,没学过操作系统,三面结束两周后简历就自动释放了貌似(具体我也不知道,可能直接悲剧,也可能是自动释放,反正是挂了),好玩的是我的简历在被数加拒了之后立马被另一个部门捞了起来,这个过程我不知道,我看到的状态仍然是面试中还以为简历在数加那呢,直到前几天才从内推人那得知,简历已经在另一个部门那了(这个部门一直没联系我,阿里的简历估计要晒成干了)...亲身体会到阿里是个拥抱变化的地方。

我的AT内推经历就是那么“曲折”。一个要在池子里泡烂了,一个要被某部门晒成干了...

划重点!!!此时此刻...恳求大佬把我收了...暑假实习哪里都行,地点不限,时间可以实习三个月。简历可以看我之前的博文,那是我真正的积累。

您要是对我感兴趣,请私信我或是戳下面的邮箱联系我,我可以发给您我的简历给您我的联系方式,跪谢:jztan1996@gmail.com

(本文三天后删除)

下面是最近看到的比较有意思的面试题,由于每道题拿出来都能单独写一篇博文的缘故,这里就不加赘述了...咱们可以评论里见

一道容易被人轻视的面试题

function Foo() {
    getName = function () { alert (1); };
    return this;
}
Foo.getName = function () { alert (2);};
Foo.prototype.getName = function () { alert (3);};
var getName = function () { alert (4);};
function getName() { alert (5);}

//请写出以下输出结果:
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();

闭包小题

for(var i = 0; i < 5; i++) {
    console.log(i);
}

for(var i = 0; i < 5; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000 * i);
}

for(var i = 0; i < 5; i++) {
    (function(i) {
        setTimeout(function() {
            console.log(i);
        }, i * 1000);
    })(i);
}

for(var i = 0; i < 5; i++) {
    (function() {
        setTimeout(function() {
            console.log(i);
        }, i * 1000);
    })(i);
}

for(var i = 0; i < 5; i++) {
    setTimeout((function(i) {
        console.log(i);
    })(i), i * 1000);
}

setTimeout(function() {
  console.log(1)
}, 0);
new Promise(function executor(resolve) {
  console.log(2);
  for( var i=0 ; i<10000 ; i++ ) {
    i == 9999 && resolve();
  }
  console.log(3);
}).then(function() {
  console.log(4);
});
console.log(5);

函数的隐式转换

function fn() {
    return 20;
}
console.log(fn + 10); // 输出结果是多少

function fn() {
    return 20;
}

fn.toString = function() {
    return 10;
}

console.log(fn + 10);  // 输出结果是多少?

function fn() {
    return 20;
}

fn.toString = function() {
    return 10;
}

fn.valueOf = function() {
    return 5;
}

console.log(fn + 10); // 输出结果是多少?

函数防抖和函数节流(ES6)

//函数节流
const throttle = (fun, delay) => {
    let last = null;
    return () => {
        const now = + new Date();
        if (now - last > delay) {
            fun();
            last = now;
        }
    }
}
//实例
const throttleExample  = throttle(() => console.log(1), 1000);
//调用
throttleExample();
throttleExample();
throttleExample();
//函数防抖
cosnt debouce = (fun, delay) => {
    let timer = null;
    return () => {
        clearTimeout(timer);
        timer = setTimeout(() => {
            fun();
        }, delay);
    }
}
//实例
const debouceExample = debouce(() => console.log(1), 1000);
//调用
debouceExample();
debouceExample();
debouceExample();