字节跳动前端实习(123hr面),附送网易华为面经
链接:https://job.toutiao.com/s/eJWHQUW
上面base地是杭州,北上广的伙伴们可以进入下面这个链接搜前端实习生即可!
链接:https://job.toutiao.com/s/eJWuXp2字节
一面(1.21)
1.css的display:none,visibility:hidden,opacity: 0三者具体区别,屏幕中能不能看见空白等等
2.display flex 实现一个三栏布局,要求左边宽度固定,中间与右边宽度相等
3.下面代码输出的结果是什么?
var length = 10; function fn() { return this.length+1; } var obj = { length: 5, test1: function() { return fn(); } }; obj.test2=fn; //下面代码输出是什么 console.log(obj.test1()) console.log(fn()===obj.test2())
4.js如何定义一个类并实现继承要求不能使用es6的语法(手写了一个寄生组合式继承)
5.看代码说输出
console.log('begin') setTimeout(() => { console.log('setTimeout 1') Promise.resolve().then(() => { console.log('promise 1') setTimeout(() => { console.log('setTimeout2 between promise1&2') }) }).then(() => { console.log('promise 2') }) }, 0) console.log('end')
6.浏览器的事件模型?(DOM0,DOM2级,IE事件模型)
7.在当前的事件模型中,哪些事件可以冒泡,哪些不会冒泡,为什么?不会冒泡的怎么实现事件委托(addEventListener第三个参数可以在捕获阶段添加事件监听)
9.常见的HTTP Method有哪些?GET/POST区别?Header中常见的key/value对有哪些?Header中能存放二进制数据么?你认为Header中,最重要的那个Key/Value对是什么?
10.如何理解虚拟DOM?
11.手写promise.all
12.用 vue 实现一个树形目录数组件,支持目录树的展示和点击展开收起操作(不会)
13.比较两个版本号 version1 和 version2。
14.如何快速判断一个ip地址是否属于国内?已知db中有几十万个国内ip地址段(转为一串数字然后二分查找,写一个二分查找)
15.能实习多久,什么时候能来
16.反问:
面试表现怎么样:基础比较好,可能就缺少一些经验、代码写得比较少
能过吗:我这边没问题
二面(1.21)
一面结束10分钟,开始二面
1.水平和垂直居中(写了五种,详细问了margin:auto ,上右下左都为0这种方法的原理)
2.请写出一个可以生成整型随机数数组(内部元素不重复)的函数,并可以根据参数设置随机数生成的范围和数量。例如:函数
makeRandomList(a,b,c),可以生成 [a,b)范围内,长度为c的随机数数组
3.手写eventbus(发布者订阅者模式)
emit、on、off、once
4.项目难点
5.问了前端学习方法
7.反问
面试表现怎么样:能看得出,3个月时间把前端基础学得比较扎实,经验差一点
能过吗:我们比较注重学习能力,经验可以在工作中弥补
没录音,还有些忘了。。
三面(1.26)
1.前端学习方法
2.项目各种细节。
3.data中的数据什么时候不能实现响应,怎么解决?(Vue.set,this.$set)为什么这两种方式就能实现响应式,与直接this.data的区别(感觉是在问this.$set的原理)
4.Vue的响应式原理,以及这种原理的缺点
5.前端安全方面你知道哪些:https的具体过程、xss、csrf、dns劫持以及各自的解决方法
6.做一个类似百度搜索的组件,输入框输入数据,发送到后端,后端接收数据并返回推荐的搜索列表。(简单写了个框架,里面用到了防抖,暴露了实战经验不足。。。)
7.能实习多久,什么时候能来
8.反问:
面试表现如何:这个我不能和你说,后续我们会有hr通知你
hr面试
网易
一面(12.25)
1.清除浮动
2.垂直水平居中(同时满足)有哪些方式
3.JS变量提升和函数提升的定义、区别
3.有没有做过上传过图片这个功能
4.有没有做过移动端
5.有没有做过动画
6.有没有配置过webpack(4连没有,歇逼)
7.new一个vue实例,在data里面初始化一个变量,修改这个变量,在这之后,Vue做了些什么(答了双向数据绑定、diff算法、vdom)
8.谈谈promise,promise.all知道吗
9.vue怎么实现对数组的监听,vue数组变异方法有哪些,是怎么实现的,以push为例,说说算法
10.es6有哪些新特性
11.有两个同级的vue组件,有哪些方法可以实现组件的数据交互(答了vuex,新建了一个中间组件作为两个组件的父组件,子传父、父传子,面试官问还有没有,摇了我吧)
12.事件循环机制->宏任务微任务
(好家伙,准备了一个星期就敢去面试,疯狂被打击)
华为
一面(1.15)
- positon
- CSS动画,transition和animation区别
- 浮动有什么问题(脱离文档流、塌陷,清除浮动)
- 谈谈flex布局
- ES6新特性
- promise的应用场景
- 箭头函数与普通函数的区别(this和new)
- event loop、宏任务微任务
- try catch能不能捕获到异步抛出的错误
- let和var区别
- webpack能不能自己写一个loader,自己实现一个loader
- vue全家桶各自的原理
- 组件间通讯->eventbus对比vuex有哪些缺点
- http状态码
- http缓存机制(强制缓存,协商缓存,详细问了各个字段的含义,etag、cache-control、max-age......)
- 反问
二面(1.15)
二面结束对方就打电话约了二面,10分钟后开始二面,二面就写了一个数组扁平化的函数,约了28号的综合面