讨论/求职面试/字节跳动|前端实习|面经总结(一)|2020|/
字节跳动|前端实习|面经总结(一)|2020|

bytedance.jpg

项目

一般先从简历中的项目开始问,很多童鞋(包括我)经常会把一些自己学过的但是没有彻底掌握的写上去,因为学了不写在简历上总感觉有点亏。

但是面试官会认为你写在简历上的所有东西都已经掌握了,所以如果没答上来,面试官自然感觉不是很好。

JavaScript

  • js 的类型判断有哪些
  • typeof 可以检测哪些值
  • ES6 的箭头函数
  • 介绍一下函数的作用,纯函数是什么,函数的副作用是什么
  • 类数组转化为数组的方法(slice, Array.from())
  • 封装一个类型鉴定函数
  • 闭包的应用场景
  • 实现 bind 函数
  • 实现一下 curry(柯里化)
function curry (fn, arr = []) {
    return fn.length === arr.length ? fn.apply(null, arr) : function (...args) {
        return curry (fn, arr.concat(args))
    }
}
const curry = (fn, arr = []) => fn.length === arr.length ? fn(...arr) : (...args) => curry(fn, [...arr, ...args]);
  • 介绍一下 Promise
  • 介绍一下宏任务和微任务,event loop 机制
  • 异步在其他语言上怎么实现
  • 如果阻塞了 JS 中的主线程会发生什么情况,比如下面的代码:
setTimeout(() => console.log("hello world"))
while (true) {}
  • JS 实现异步的 5 种方式(callback,发布订阅模式,Promise,生成器函数,async/await)
  • 发布订阅模式是怎么样的

nodejs 中 EventEmitter 类,主要方法有 on,emit,once,off

class EventEmitter {
    constructor () {
        this._eventpool = {};
    }
    on (event, callback) {
        this._eventpool[event] ? this._eventpool[event].push(callback) : this._eventpool[event] = [callback]
    }
    emit (event, ...args) { 
        this._eventpool[event] && this._eventpool[event].forEach(cb => cb(...args))
    }
    off (event) {
        if (this._eventpool[event]) {
            delete this._eventpool[event]
        }
    }
    once (event, callback) {
        this.on(event, (...args) => {
            callback(...args);
            this.off(event)
        })
    }
}
  • 原型链的题目
function a() {
    this.b = 3
}
a.prototype.b = 7;
var t = new a();
var b = 2;
a();
console.log(t.b);
console.log(b);
// 3
// 3
  • 手写 节流
  • reduce 实现 map 的 功能
  • 讲一讲 React 中的 PureComponent

CSS

  • flex 布局
  • 水平垂直居中的实现方法
  • 实现一个模态窗口,要从窗口下面向上弹的动画
  • rem,em 是什么意思
  • CSS 的布局方式
  • 单行文本溢出,多行文本溢出的代码实现
  • 什么是 BFC 布局
  • CSS 性能优化(较难,需要一定知识深度和广度)

网络

  • 跨域如何解决
  • XSS 攻击是什么
  • CSRF 是什么
  • 浏览器的渲染原理
  • tcp 和 udp 的区别
  • tcp 拥塞机制
  • tcp 三次握手
  • tcp 四次挥手

算法

开放式问题

这类问题问到的频率非常高,会穿插在技术面和 hr 面中。

  • 学习前端多久
  • 怎么学习前端的
  • 有什么缺点
  • 在学校的成绩排多少

参考文章

https://www.r.com/discuss/177482\color{grey} {https://www.***r.com/discuss/177482}
https://blog.csdn.net/crystal6918/article/details/60467615\color{grey} https://blog.csdn.net/crystal6918/article/details/60467615
https://www.r.com/discuss/170779\color{grey} https://www.***r.com/discuss/170779
https://www.r.com/discuss/165786\color{grey} https://www.***r.com/discuss/165786

10

这实习就问这么多的问题了么,哭泣

展开全部 12 讨论