为了保证制作简历的安全性和流畅性,建议您使用Chrome浏览器进行访问
CycleUser 应届生
APP 内打开
3
12
133

头条、拼多多前端面经

字节跳动

一面

1.说出以下代码的原型关系,以及 Object 和 Function 的原型关系

复制代码

Function;

function test() {

}

 var obj = new test();

 __proto__    prototype


2.合并两个已排序的链表:递归解法、迭代解法


3.判断数组类型有哪些方法


4.webpack 常用 loader、plugin


5.Promise 中抛出异常能否被 catch 捕获?

复制代码

let promise = new Promise((resolve, reject) => {

  throw new Error()

  reject()

})

promise.catch(err => {

  console.log(err)

})


6.冯诺依曼体系讲讲


7.线程与进程的区别


8.操作系统为什么要设计用户态和内核态?


二面


1.讲讲模块化规范


2.import 和 require 的区别


3.require 是如何解析路径的?


4.模拟实现 new 操作符


5.算法:找出字符串中第一个不重复的字符


6.promise 考察


复制代码

用promise实现以下功能。

具体: fn1和fn2都是异步函数,f1、fn2同时执行,并且fn1、fn2的结果是 fn3的参数。当fn1或者fn2发生错误时,fn3照常执行,此时的参数为空。


eg:

fn1 = async() => {

 // 发送请求

 const data = await sendRquest1();

 return data;

}

fn2 = async() => {

 // 发送请求

 const data = await sendRquest2();

 return data;

}


7.下面代码的输出,why?

复制代码

'use strict';

var b = 2;

if (true) {

    let a = 2;

    var b = 3;

    var c = 4;

    const d = 5;

}

 

console.log(a);

console.log(b);

console.log(c);

console.log(d);

var d = 6;


8.节流防抖,手写


9.列举获取 DOM 元素的方式


10.react 生命周期,HOC


三面


老哥太好了基本在聊天...


1.node 中间件原理

2.写一个中间件,怎么使用?

3.webpack 打包整体流程

4.两道简单的算法题:层次遍历二叉树、反转链表

5.项目中 cookie + redis 实现自动登录怎么做的?

6.常见 web 安全问题,xss、csrf、sql 注入、数据库加密、cookie 加密及防范措施

7.为啥学前端?

8.以后有什么打算?

9.有和别人协作的项目吗?

小结

头条比较注重基础知识和编码能力和一些基础算法能力,希望能过吧......之后还有拼多多的面试也会发在这里。



拼多多

一面 电话面试

1.项目问题:IndexedDB 和 localStorage 使用的区别

2.图片懒加载思路,监听页面滚动实现的,怎么做优化?除了节流?除了监听页面滚动有没有其他方案?

3.前端监控是啥?让你设计一个 SDK 给别人用(自己设计一个前端监控库怎么做?)

4.添加事件处理程序有哪些方案?区别?

5.给一个 DOM 添加多个 click 事件,不能用 addEventListener,只用 onClick 咋整?

6.发布订阅模式,嘴巴撕

7.聊天室用了 WebSocket,说一说

8.最后说第 5 个问题可以用发布订阅的思路来实现

感觉凉凉 -.-

问了几个问题:

lodash 还用吗?答:ES6 提供了新的 API 基本能满足需求,用的比较少了

typescript 啥时候用?答:项目比较大的时候,对数据类型要求严格的情况下使用


随便贴两个常见问题吧:

CSS 隐藏元素有哪几种方式?它们的区别?

为什么实际应用中 Last-Modified 和 etag 都会使用到?

主要是因为如果文件内容被修改了但是实际上并没有变化,比如删掉一个字符 a 又填上去,该文件的 Last-Modified 会发生变化,但是 Etag 不会变。

下面贴两段介绍吧:


☝ Last-Modified / If-Modified-Since:Last-Modified

表示本地文件最后修改日期,If-Modified-Since 会将上次从服务器获取的 Last-Modified 的值发送给服务器,询问服务器在该日期后资源是否有更新,有更新的话就会将新的资源发送回来。

但是如果(服务器)在本地打开缓存文件(或者删了个字符 a 后又填上去),就会造成 Last-Modified 被修改,所以在 HTTP / 1.1 出现了 ETag。


☝ Etag / If-None-Match:

ETag类似于文件指纹,If-None-Match 会将当前 ETag 发送给服务器,询问该资源 ETag 是否变动,有变动的话就将新的资源发送回来。并且 ETag 优先级比 Last-Modified 高。

由于 etag 要使用少数的字符表示一个不定大小的文件(如 Etag: "58c4e2a1-f7"),所以 etag 是有重合的风险的,如果网站的信息特别重要,连很小的概率如百万分之一都不允许,那么就不要使用 etag 了。使用 etag 的代价是增***务器的计算负担,特别是当文件比较大时。

最后祝大家 offer 多多啦( ̄▽ ̄)~*

发布时间:2020年07月15日
用户头像
我来说两句…
共 12 条评论
青春微凉丶 字节跳动·软件工程师
我感觉我们面的是同一个部门,也是上海的,题有些是一样的,昨天一二面结束,今天通知三面,希望能拿offer,请问你是三面结束多久后给你发意向书的啊
2020年09月22日 回复
__眼→__手 东南大学·2022届
想问下PDD第五题怎么答啊😂昨天美团也被问到这个了
2020年09月22日 回复
栖迟 广东财经大学·2022届
太难办
2020年11月29日 回复
_____续_つ 山东大学·2022届
楼主很厉害啊~!
2020年11月29日 回复
七个板栗 武汉科技大学·2022届
二年开始算法 比你难多了
2020年09月22日 回复
我了个去 广东财经大学·2022届
你真的好厉害呀,学习学习
2020年09月22日 回复
奉义天涯 武汉大学·2022届
请问你面的哪个部门呀
2020年09月22日 回复
鱼啊开阔了世界 北京理工大学·2022届
恭喜恭喜
2020年09月22日 回复
陈冠融 中央民族大学·2022届
前端还要问操作系统 自闭了
2020年09月22日 回复
翰林校尉 北京工业大学·2022届
这只头条? 那为啥用红黑树***呢
2020年09月22日 回复
Kwing 澳门科技大学·2022届
赞一个  
2020年09月22日 回复
七月丶我在繁花中想你 华东政法大学·2022届
棒极了码
2020年09月21日 回复