字节跳动
一面
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 个问题可以用发布订阅的思路来实现
二面 微信视频
1.自我介绍 balabalabala (说了看书和看视频来学习前端)
2.平常看哪些书啊?
3.webpack 懂吧?说下用过的 loader 和 plugin
4.PWA 了解吧?说一下
4.node.js 用过是吧?说下中间件是啥?
5.ES6 用得多吧?说一下 ES6
6.说到了模块化,require 与 import 的区别?
7.说到 require 会把加载过的模块缓存在内存,说说这会导致些什么问题(内存暴增啥的,比方说我们暴露出一个对象,上万个请求都往这个对象上添加属性)
8.说说浏览器和 node.js 的事件循环机制
9.聊到设计模式,讲讲你知道哪些设计模式(举《JavaScript 设计模式与开发实践》中的例子,讲了几个感觉差不多了就不讲了)
10.项目用到 PM2,介绍下
这些问题几乎都可以在我的笔记中找到答案哦:https://github.com/ChenMingK/Blog