字节跳动抖音/火山------一二三面+hr面、已offer

news/2024/11/30 10:34:22/

一面之前大概几天整个人其实很紧张,复习了好几天,周二下午开始了,面试开始的时候,其实没有那么紧张了,就开始了面试之路,啦啦啦啦啦

Q:知道线程和进程吗
答:布拉布拉

Q:了解过js的数据类型吗
答:…说的挺完整的

Q:怎么判断是数据类型
答:typeof和instanceOf,布拉布拉

Q:说一下 == 和 === 的区别及用法
答:布拉布拉

Q:知道tcp和udp的区别吗
答:布拉布拉

Q:知道tcp的主要用途吗
说了一下tcp3次握手,其他就布拉布拉

.Q:看一下这个能不能弹出

if ("0") {alert( 'Hello' );
}

答:可以弹出Hello

.Q: for in 和for of的区别
答:因为忘了一些,就说了一下map和forEach
Q:那forEach可以打断吗
答:不可以,布拉,好像说的有些问题

.Q:了解那个深拷贝吗?大概说一下
答:说了一下递归的,手写了一个代码
Q:除了递归的还会其他方法吗,简单的两三行代码
答:emmm,不会了,还没有了解过

.Q:看一下这个打印的顺序

<form onclick="alert('form')"><div onclick="alert('div')"><p onclick="alert('p')"></p></div>
</form>

答:我就说这个应该是事件冒泡,p->div->form,也不知道对不对

Q:看一下这个题输出

let promise = Promise.resolve();
promise.then(() => alert("1"));
alert("2"); 

答:先是2,再是1,布拉布拉

Q:关于promise主要用那些API
答:就之前用过then和promise.all
Q:那promise.all主要实现的功能是什么
答:布拉布拉布拉
Q:那它里面的promise是串行还是并行执行呢
答:并行的

Q:看一下这个继承的题吧

let animal = {jumps: null
};
let rabbit = {__proto__: animal,jumps: true
};
alert( rabbit.jumps ); // ? (1)
delete rabbit.jumps;
alert( rabbit.jumps ); // ? (2)
delete animal.jumps;
alert( rabbit.jumps ); // ? (3)

答:这个是true -》 null -》undefined

Q:用class重写一下这个函数

function Clock({ template }) {let timer;function render() {let date = new Date();let hours = date.getHours();if (hours < 10) hours = '0' + hours;let mins = date.getMinutes();if (mins < 10) mins = '0' + mins;let secs = date.getSeconds();if (secs < 10) secs = '0' + secs;let output = template.replace('h', hours).replace('m', mins).replace('s', secs);console.log(output);}  
this.stop = function() {clearInterval(timer);};this.start = function() {render();timer = setInterval(render, 1000);
};  
}
let clock = new Clock({template: 'h:m:s'});
clock.start();

答:这个题卡了好久,不会写,最后也没有写出来,面试官给我大概讲了一下,引导了好久,感觉人很好

Q:知道http返回的状态码304吗
答:终于离那个改写题远了,开始了网络。大概说了一下

Q:那知道关于缓存的head,就是http的请求头吗
答:这个当时不太了解

Q:那Cache-Control了解过吗
答:缓存控制,布拉布拉,说了一点点,不太清楚

Q:那说一下position的属性吧
答:这个简单,我就说了好多

Q:聊一下居中吧
答:说了水平,垂直,水平垂直居中,布拉布拉。

Q:那说一下css动画都有哪些
答:随便说了几个

Q:那写一个从左向右移动,延迟300ms的动画
答:就开始写了

Q:说一下浏览器渲染的过程
答:这个很熟悉,就布拉布拉

Q:那回流和重绘知道吗
答:布拉布拉

Q:有用过性能优化的东西吗
答:从css,js,缓存方面都说了一些

Q:有用过Chrome DevTools吗
答:当时没有听懂,就说不会了

Q:那最后写一个题吧

"()"              =>  true
")(()))"          =>  false
"("               =>  false
"(())((()())())"  =>  true

答:括号匹配,就是利用栈进行写

const str = "()())";
let show= (str)=>{const leftArr = [];for(let i =0;i<str.length;i++){if(str[i]=='('){leftArr.push(i);}else if(str[i]==')'){if(leftArr.length==0){return false;}leftArr.pop();}}if(leftArr.length!== 0){return false;}return true;
}

整个面试过程感觉挺轻松的,大概面了快一个小时,面试官小哥哥人也很好,正在收拾东西回宿舍的时候,hr小姐姐打电话过来了,说让我准备二面,15分钟后开始二面了。


收拾了一下东西,准备开始二面了,看到面试官,感觉有点严肃,开始紧张了。

Q:自学前端多久了
Q:过去有哪些学习的方法
Q:书籍都看过那些

Q:学习前端的过程中遇到过什么难点
答:这个问题说了之后,被深追了问了好多。怎么解决的,具体栗子什么的。
Q:遇到问题通过书籍什么的没有解决吗
答:布拉布拉

Q:具体介绍一下项目的亮点和难点
答:说了好多,各种问题都问了,以及难点自己是如何解决的,具体解决方法等等。

Q:Date的一些API
答:说了一两个,不太熟悉。 Date.now() //获取当前时间毫秒数 。dt.getTime() //获取毫秒数。 dt.getFullYear() //年
Q:那说一下这个构造函数的原型链,及它的好处
答:我说了函数的原型链,没有说时间的

Q:项目中正则用过那些特性
答:说了分组和量词

Q:对修饰符和断言有了解吗
答:修饰符布拉,不知道断言

Q:对/g有什么了解,带不带它有什么区别
答:布拉布拉,说了一下

Q:用了修饰符在for循环中有哪些影响
答:emmm,不太会

Q:知道正则中的last-index属性吗
答:用于规定下次匹配的起始位置。

Q:状态管理除了redux使用过其他的吗,以及优缺点
答:没有用过其他的,就没有问了

Q:redux使用过程中有哪些困难
答:布拉布拉

Q:了解过单向数据流撤消的功能吗,就是状态回滚
答:emmm,不太了解。下来自己查了一下,感觉触及知识盲区

Q:觉得redux写起来有没有难用的点
答:就说了一下关于数据的处理的问题,用到了ImmutableJS,就造成性能浪费

Q:ImmutableJS的好处以及他的用处
感觉给自己挖了一个坑。就大概说了一下,返回新的对象

Q:主要使用它哪些属性和方法
答:使用了Map,其他的使用不多。

Q:关于pureComponent的了解
答:布拉布拉

Q:关于shouldComponentUpdate()有使用过吗
答:因为没有用过就没有说

Q:styled-component对比其他的库有什么有点
答:布拉布拉

Q:如何从组件中抽取全局的样式
答:就说了injectGlobal废除了,现在是creactGlobalStyle

Q:说一下http的幂等性
答:这个不知道,所以没有说

Q:说一下https密钥交互过程
答:布拉布拉

Q:http的协商缓存说一下吧
答:布拉布拉
Q:返回304的时候,还会更新哪些内容
答:这个当时说错了,emmm

Q:webpack中hash的配置,三种hash的差异及应用场景
答:没有配置过hash,说了hash,chunkhash,contenthash

Q:es6中let和const解决了es5里面的那些缺陷
答:布拉布拉

Q:变量提升做了那些事情
答:布拉布拉

Q:说一下事件循环吧
答:布拉布拉,说了好多
Q:同步任务放在哪里(执行队列还是事件队列)
答:布拉布拉
Q:那看个题

console.log('1');
setTimeOut(()=>{console.log('2');
});
console.log('3');

答:1.2.3,,后来发现错了是1,3,2.

Q:看一下这个题

实现一个函数sum,运算结果可以满足如下预期结果:
sum(1,2,3).valueOf();       //6
sum(2,3)(2).valueOf();      //7
sum(1)(2)(3)(4).valueOf();  //10
sum(2)(4,1)(2).valueOf();   //9

答:这个就函数柯里化的问题,然后开始手写

function sum(){var _args = Array.from(arguments);var _add = function(){_args.push(...arguments);return _add;};_add.valueOf = function(){return _args.reduce((a,b)=>a+b);}return _add
}
console.log(sum(1,2,3).valueOf());

Q:最后看一道题吧
我(心理):太好了

   12     3
7   6 5   4
输出 1234567

答:开始写

function Print(pRoot){const lists =[];if(pRoot === null){return lists;}const stack1 = [];const stack2 = [];stack2.push(pRoot);let i = 1;while(stack1.length !== 0 || stack2.length !== 0){const list = [];if((i&1) ===1){while(stack2.length !== 0){const tmp = stack2[stack2.length -1];stack2.pop();list.push(tmp.val);if(tmp.left !== null){stack1.push(tmp.left);}if(tmp.right !== null){stack1.push(tmp.right);}}}else{while(stack1.length !== 0){const tmp = stack1[stack1.length -1];stack1.pop();list.push(tmp.val);if(tmp.right !== null){stack2.push(tmp.right);}if(tmp.left !== null){stack2.push(tmp.left);}}}++i;lists.push(list);}return lists;
}

面试了一个半小时,终于结束了,感觉好累,自我感觉有点悬,收拾东西回宿舍,祈祷过了。在回去的路上接到hr小姐姐的面试,告诉我准备3面,开心,准备下周面试。加油。


3.9,周二,三面开始了
13:30就开始坐在电脑面前等面试官,紧张ing

Q:说一下什么时候开始学习前端的吧
答:布拉布拉

Q:说一下学习前端的心得
答:布拉布拉

Q:博客大概多久更新一次

Q:最近总结过什么吗

Q:看书和看网站有什么差异吗

Q:最近从书上学到过哪些知识点

Q:聊一下项目

Q:为什么写这个项目,项目写之前的拆解

Q:代码的设计,以及设计流程

Q:使用了哪些技术,为什么用这个技术

Q:介绍一下style-component使用和其他对比的优点

Q:使用的是react,那有对比过vue吗

Q:你觉得用react写和纯js写有什么区别

Q:redux是解决什么问题的

Q:如果不使用redux呢

Q:介绍一下redux整个数据的流向

Q:订阅组件和redux更新的实现

Q:那redux是怎么进行更新组件中的数据,是更新state,还是props
答:state,布拉布拉

Q:那这个更新的是redux中的数据,那怎么映射到组件中
答:connect([mapStateToProps],[mapDispatchToProps],[mergeProps],[options]) :连接React组件与 Redux store

Q:hooks这块大概用来做什么

Q:如果不使用hook呢,有什么不好

Q:项目中技术的难点是什么
答:说了一下字符串解析的问题。提到了正则

Q:那正则还了解过其他吗,举个栗子

Q:项目用了多久

Q:那之后会对项目进行优化吗

Q:项目有没有部署到对外的服务吗,了解过部署吗

面完之后,面试官就说去找hr了,让我等会继续面,10分钟左右hr小姐姐就接着面了


Q:自我介绍一下
Q:有读研的准备吗
Q:到岗时间和实习时长
Q:有转正的需求吗
Q:自己的规划
Q:为什么会选择前端方向
Q:前端自学的渠道有哪些
Q:评价一下项目的亮点以及角色收获
Q:有没有难点,如何解决的
Q:了解字节的工作节奏吗
Q:如果工作不轻松的话有没有顾虑
Q:如果遇到比自己强的同学会怎么样
Q:还投过其他的公司吗
Q:offer选择看重哪些维度呢
Q:那你觉得氛围怎么样是比较好的
Q:在一个组织当中你会主动承担领导者的角色吗
Q:和同学之间的关系怎么样
Q:你觉得自己的短板是什么

结果hr小姐姐说过两天给,嘿嘿,整体感觉面下来就是开心,整个过程还是很轻松的,也比较幸运吧。接下来就是许愿offer。


http://www.ppmy.cn/news/798158.html

相关文章

火山视窗opencv 火山配置opencv方法

火山基础应该都会我就不多说了&#xff0c;不会的先去学学基础再来。 每次创建项目都配置一次就很麻烦了&#xff0c;所以我建议大家另外创建一个文件来存放&#xff0c;当成了类是模块来使用。 先创建一个mfc窗口项目&#xff0c;鼠标右键点击 模块》添加》新建文件 创建一个…

火山视频在一键去水印网站上解析教程,火山视频去水印教程

作为一个做了这么久火山搬运的博主&#xff0c;经常会从别的平台对短视频进行搬运&#xff0c;但是搬运的时候就会经常遇见一个问题&#xff0c;就是下载下来的视频经常会带有这个平台的水印&#xff0c;这对于我们搬运来讲是很不友好的&#xff0c;那么如何去除呢&#xff1f;…

必看,短视频创作工具大全(电脑端)

经常看到很多朋友说想做短视频&#xff0c;但又不知道该做些什么准备&#xff0c;有什么工具需要提前学习的&#xff0c;其实短视频运营很简单&#xff0c;下面就给大家介绍一些短视频创作必备的工具&#xff08;电脑端工具&#xff09;&#xff0c;帮助各位新手快速入行&#…

Auto.js抖音极速版、快手极速版,刷宝短视频、火山极速版自动刷看

介绍 脚本能够实现抖音极速版、快手极速版&#xff0c;刷宝短视频、火山极速版、趣看看App的自动刷看。脚本布置在手机上后会自动刷看&#xff0c;为防止被封&#xff0c;我设置几个app循环刷看&#xff0c;其中趣看看能实现文章自动检测广告&#xff0c;跳过广告阅读&#xf…

火山小视频搬运不违规 | 短视频伪原创技巧

火山小视频搬运不违规 | 短视频伪原创技巧 可以分析他们的最近选题方向&#xff0c;他们的题材都来自哪里&#xff0c;要怎么做这个题材.多关注同行信息会帮你更好的去找到选题灵感。 火山小视频搬运不违规 | 短视频伪原创技巧自媒体运营技巧&#xff1a;短视频优…

火山登录显示服务器错误是什么意思,火山obs直播权限_火山开播出现OBS什么意思...

火山开播出现OBS什么意思 obs 录制软件 一般用来做直播 或者一些录制组会使用 我在火山里面看见有人直播手游怎么才能直播游戏 我在火山里面看见有人直播手游怎么才能直播游戏直播游戏... 我在火山里面看见有人直播手游怎么才能直播游戏直播游戏 火山游戏直播&#xff0c;需要加…

抖小火山视频服务器维护中,抖音、火山小视频、悟空问答昨天都崩了

原标题&#xff1a;抖音、火山小视频、悟空问答昨天都崩了 导读 宕机属于电脑运作的一种正常现象&#xff0c;任何电脑都会出现这种情况&#xff0c;服务器也不例外。 刺猬公社 | 石灿 昨天下午6点左右&#xff0c;抖音、火山小视频和悟空问答崩了&#xff01;头条号也出现了暂…

高项(2023年5月)——采购管理

采购管理 在“互联网+”的大环境下,随着“十三五”提出的大健康概念之后,人们逐渐从被动、针对性就医转变为主动、定期性健康检查,受新冠疫情的影响,医疗服务也慢慢向智能化、信息化、数字化方向发展,基于此我国某省卫健委提出要建设一个信息化医疗系统的项目,此项目总成…