字节跳动前端实习面试,再附送网易华为面经
Posted 不爱码字的程序员-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节跳动前端实习面试,再附送网易华为面经相关的知识,希望对你有一定的参考价值。
前言
先分享一波字节的福利待遇!
- 技术岗日薪400,房补杭州800/北京1500;
- 全员 Mac + 4K 显示器,上班 10 点以后,下班7点,但是根据自己的工作进度(另外10 点以后打车报销);
- 包三餐(有健身餐)和下午茶,菜品非常多,自己打菜想吃多少打多少,零食、咖啡不限量;
- 公司附近有免费的健身房,设备非常给力噢;
- 扁平化管理,无需过多考虑上下级的关系,同事都很年轻nice;
准备了一个月的面试,先是面了网易(一面挂)、华为云(等待leader综合面)、字节(等offer),在CSDN学习了那么久,在这里小编也回馈一下大伙,分享出来我的面试经历
进入正题
字节
一面
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.反问:
面试表现怎么样:基础比较好,可能就缺少一些经验、代码写得比较少
能过吗:我这边没问题
二面
一面结束10分钟,开始二面
1.水平和垂直居中(写了五种,详细问了margin:auto ,上右下左都为0这种方法的原理)
2.请写出一个可以生成整型随机数数组(内部元素不重复)的函数,并可以根据参数设置随机数生成的范围和数量。例如:函数
makeRandomList(a,b,c),可以生成 [a,b)范围内,长度为c的随机数数组
3.手写eventbus(发布者订阅者模式)
emit、on、off、once
4.项目难点
5.问了前端学习方法
6.能实习多久,什么时候能来
7.反问
面试表现怎么样:能看得出,3个月时间把前端基础学得比较扎实,经验差一点
能过吗:我们比较注重学习能力,经验可以在工作中弥补
没录音,还有些忘了。。
三面
1.前端学习方法
2.项目各种细节。
3.data中的数据什么时候不能实现响应,怎么解决?(Vue.set,this.set)为什么这两种方式就能实现响应式,与直接this.data的区别(感觉是在问this.set)为什么这两种方式就能实现响应式,与直接this.data的区别(感觉是在问this.set)为什么这两种方式就能实现响应式,与直接this.data的区别(感觉是在问this.set的原理)
4.Vue的响应式原理,以及这种原理的缺点
5.前端安全方面你知道哪些:https的具体过程、xss、csrf、dns劫持以及各自的解决方法
6.做一个类似百度搜索的组件,输入框输入数据,发送到后端,后端接收数据并返回推荐的搜索列表。(简单写了个框架,里面用到了防抖,暴露了实战经验不足。。。)
7.能实习多久,什么时候能来
8.反问:
面试表现如何:这个我不能和你说,后续我们会有hr通知你
hr面试
1.个人学习方法
2.为什么研究生选择跨专业
3.为什么选择前端
4.准备了多长时间、怎么准备的
5.有其他offer吗、发offer会来吗
6.谈了谈字节的待遇
( hr说尽快这周把offer发下来, 开心,作为一个前端小菜鸡,我要好好学前端!!!)
网易
一面
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.事件循环机制->宏任务微任务
(好家伙,准备了一个星期就敢去面试,疯狂被打击)
华为
一面
- 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......)
- 反问
二面
二面结束对方就打电话约了二面,10分钟后开始二面,二面就写了一个数组扁平化的函数,约了28号的综合面
最后
博主整理了一些前端CSS面试题文档,javascript面试题文档,Vue面试题文档,大厂面试题文档,由于篇幅问题,需要的小伙伴可以戳这里或者手动加交流群1021825891免费领取!
还有一件事!如果觉得博主写的不错,记得三连哦
以上是关于字节跳动前端实习面试,再附送网易华为面经的主要内容,如果未能解决你的问题,请参考以下文章