字节跳动前端一二面经
一面(53分钟)
- 自我介绍
- 网络里面四层协议有哪些?
- 应用层协议有哪些?(HTTP,FTP,SMTP)
- SMTP具体是什么意思(不知道,一般用HTTP比较多)
- http1.0 http1.1 http2.0有哪些区别
- get和post的区别
- TCP建立连接和断开连接的过程说一下
- TCP和UDP有什么区别?
- TCP和UDP适用于那些场景
- http和https有什么区别
- 说一下SSL的过程
- DNS的作用
- DNS具体解析过程
- 知道DNS劫持吗
- 说一下XSS和CSRF吧
- 缓存里面有强缓存和协商缓存,说一下这两种的区别吧
- 协商缓存里面除了有last-modified,if-since-modify这些还来可以通过哪些方式(说了Etag)
- 那etag具体是怎么实现的呢
- 问一下JS相关的,JS里面有哪些基本数据类型
- 有哪些引用数据类型
- 基本数据类型和引用数据类型的区别有哪些
- JS里面如何定义一个类,用ES6语法呢(开始没想起来,他提示了一下class,然后我说了constructor)
- 如何实现继承(原型链继承,构造函数继承,组合继承,组合寄生式继承,问了我具体实现方法,构造函数继承忘了,让他提示了一下用call)
- 说一下闭包
- 考察一下算法相关的
- Promise应该有了解吧,用promise封装一个XmlHttpRequest
SwapRequest(url).then(res=> - this指向 输出
- 给定一个字符串如下,请统计字符串中出现最多的字母和次数
二面(55min) - 实现一个函数sum(2,3) sum(2,3,4) sum(2)(3)(4)
- Vue用的比较多,说一下你对vue的理解吧(说了vue双向数据绑定原理,watch,compute,vuerouter,vuex,method,生命周期等)
- Vue3有哪些改进?(不知道,但是说了对象和数组的劫持方法不一样)
- Object.defineproperty这种方式进行数据劫持会有哪些缺点(不知道)
- Watch a的时候a=b+3 b的值改变就会监听到a的变化,他是具体怎么实现监听的呢(不知道,大白话瞎编瞎猜,他就继续问,不知道)
- 跨域是怎么解决的
- Vue-router具体是怎么实现的(不知道)
- 父子组件是怎么传值的
- Vuex了解过吧,state是干什么用的
- Wabpack了解过是吧,webpack的作用是什么
- Webpack里面有那些配置
- 都用到过哪些loader
- Webpack对性能有哪些优化
- Proxy语法知道吗(不知道)
- Bootstrap,jQuery你还记得多少(记得不多了,知道原生dom)
- 说一下怎么获取DOM节点吧
- 关于dom你还知道什么(说了dom事件流)
- 怎么去阻止冒泡
- 现在有一亿个数,怎么找到他的最大值(木桶法,快排)
- 如果用快排怎么去优化呢
- 树这种数据结构知道吧,我想获取树上面各个节点的值,怎么获取(BFS,DFS)
- 让我说了一下DFS,BFS
- 那写一个具体的题吧(二叉树求和)
- 图你了解吧,说一下图的算法(弗洛伊德算法,狄利克雷算法)
- 这些算法是具体怎么实现的(之前学过,但是没复习忘了)
- 怎么判断图里面有没有环(不知道,但是我知道怎么判断链表里面有没有环)
- 你说一下链表里面怎么判断有没有环
- 我这没有什么问题了,你看你有什么问题没有
- 问了业务,问了学习前端应该注重什么,问了今天还有面试吗
- 说有三面,他马上要开会还没约时间