字节跳动前端提前批面经总结(四)
4679
2020.12.05
2020.12.06
发布于 未知归属地

bytedance.jpg

JavaScript

  • __proto__和prototype的区别和关系?用代码说明。(Function对象,Object对象,function test(){},这三者之间__proto__和 prototype 的关系)
  • 用过 Array 的 map,filter,reduce 吗?实现一下reduce
  • 浏览器从打开以后发生了什么
  • 讲一讲事件循环机制
  • 宏仁务和微任务 process.next.Tick()Vue next.Tick()
  • 12 和 12.0 有什么区别?

CSS

  • 实现两边定宽,中间自适应的布局
  • 手写 css 水平垂直居中的几种方式,那种最好

HTTP

  • 计算机网络的七个层
  • udp 和 tcp 的区别
  • 基于 udp 和 tcp 分别有什么协议
  • dns
  • 谈一谈对 CDN 的理解

其他

  • 如果数据库中采用 64 位长整型存储一个数据的 id,前端通过 api 拿到这个 id 的话,会有什么问题?怎么解决?
  • 列举几个在web中实现长连接的技术方案或手段
  • 微信扫码登录的原理?
  • vue原理?
  • 操作系统的磁盘调度算法熟不熟悉 一共有多少种
  • 自己对前两面的自我评价怎么样?
  • 平常怎么学习前端?
  • 说一下实习做的事?
  • 说一下做过的项目中的难点?
  • 有没有系统学习过的前端知识?
  • 未来的规划?

算法

2019-06-01 12:02:12 xxx
2019-06-01 12:02:13 xxx
2019-06-01 12:02:13 xxx
  • 模拟实现 loadash 中的 _.get() 函数,实现如下传入参数取值效果
JavaScript
/**
 * --- 题目描述 ---
 *
 * 补充函数的 TODO 部分,模拟 lodash 中的 _.get() 函数。
 *
 * --- 测试用例 ---
 *
 * 输入:
 * const obj = { selector: { to: { toutiao: "FE Coder"} }, target: [1, 2, { name: 'byted'}]};
 * get(obj, 'selector.to.toutiao', 'target[0]', 'target[2].name')
 * 输出:
 * ['FE coder', 1, 'byted']
 */

function get(object, ...path) {
    return path.map((item) => {
        let res = object;
        item.replace(/\[/g, ".")
            .replace(/\]/g, "")
            .split('.')
            .map(path => res = res && res[path]);
        return res;
    })
}
  • 实现 jsonp,并说明 jsonp 的原理,缺点?
  • 手写一个 event 类,包括 on() off() once() emit() 方法
评论 (1)