头条面经顺便玄学求offer

一面:
1、介绍项目
2、React的优点?为什么可以做到不操作DOM?虚拟树?
3、实现4:3的div,这里涉及了padding-top宽度以父元素的宽为参照
4、vh和vw有什么兼容性问题
5、对rem的了解
6、边距合并的问题,如何解决
7、怎么定义BFC
8、实现一个进度条动画,2s 0.5s突变为1/3 1s突变为2/3 1.5s突变为1 2s突变为0
9、帧动画
10、

var func1 = x =>x;var func2 = x => {x};var func3 = x => ({x});console.log(func1(1));console.log(func2(1));console.log(func3(1));

输出为?
11、箭头函数的作用域
12、原型,原型链的理解。Promise理解
13、数组A,找出最大连续子序列
二面:
1、

setTimeout(() => {
    setTimeout(() => {
        console.log(‘100, 0’)
    }, 0);
}, 100);
setTimeout(() => {
    setTimeout(() => {
        console.log(‘0, 100’)
    }, 100);
}, 0);

先输出哪一个?
2、

if ([] == false) {console.log(1);};
if ({} == false ) {console.log(2);};
if ([]) {console.log(3);};
if ([1] == [1]) {console.log(4);}; 
if ('1' == [1]) {console.log(5);};

会输出哪些
3、js的基本数据类型有哪些
4、实现对象的深克隆,不考虑function
5、数组A,两个不交叠的连续子序列和最大。
三面:
1、react 生命周期
2、实现inherit继承函数

function inherit(Fn,obj) {
}
let animalNum = 0;
function Animal(name, age) {
  animalNum ++;
  this.name = name;
  this.age = age;
}
Animal.prototype.getName = function() {
  return this.name;
};
const Cat = inherit(Animal, {
  say() {
    console.log(`NO${animalNum}:${this.getName()}`);
  }
});
const cat1 = new Cat('小花');
cat1.say(); //NO1:小花

3、事件模型中,事件响应函数的event变量中的currentTarget与target的区别是什么
4、事件委托是什么
5、我手中有一堆扑克牌, 但是观众不知道它的顺序。

第一步, 我从牌顶拿出一张牌, 放到桌子上。
第二步, 我从牌顶再拿一张牌, 放在手上牌的底部。
第三步, 重复第一步、第二步的操作, 直到我手中所有的牌都放到了桌子上。

最后, 观众可以看到桌子上牌的顺序是:13\12\11\10\9\8\7\6\5\4\3\2\1
请问, 我刚开始拿在手里的牌的顺序是什么?
6、分别解释reflow repaint,哪些情况会引起reflow
7、如何实现抛物线动画

#实习##面经##前端工程师#
全部评论
同楼上,三面大概也是同一个面试官。当时牌的顺序那道题没做出来...[手动捂脸] 蹭一蹭楼主的玄学吧
1 回复 分享
发布于 2018-05-21 14:39
建议用markdown重新写下吧
点赞 回复 分享
发布于 2018-05-20 11:43
已收藏
点赞 回复 分享
发布于 2018-05-20 11:46
已加入豪华大午餐
点赞 回复 分享
发布于 2018-05-20 21:58
和你面试题目差不多,不过我的关于vue,不会react。然后二面问了好多关于协议和安全的问题。三面估计是同一个老师。
点赞 回复 分享
发布于 2018-05-21 07:31
楼主可以看下你写的进度条的代码吗?
点赞 回复 分享
发布于 2018-05-21 15:47
div,4:3怎么实现呀,大佬?
点赞 回复 分享
发布于 2018-05-22 16:19
setTimeout(() => {     setTimeout(() => {         console.log(‘100,0’)     },0); },100); setTimeout(() => {     setTimeout(() => {         console.log(‘0,100’)     },100); },0); 这个输出是怎么分析啊?大佬
点赞 回复 分享
发布于 2018-05-22 19:07
大佬你的inherit函数怎么实现的,这样可行不 function inherit(Fn, obj) {         Object.keys(obj).map(key => {             if(typeof obj[key] === 'function') {                 Fn.prototype[key] = obj[key];             }                      })         console.log(Fn)         return Fn; }
点赞 回复 分享
发布于 2018-05-25 19:08
4
点赞 回复 分享
发布于 2018-05-25 19:12

相关推荐

11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
4 34 评论
分享
牛客网
牛客企业服务