字节提前批一面
😅戴了一小时痛苦面具
面试官先来了自我介绍,好像姓李,名忘了,字节教育那一块的。
然后我的自我介绍
开始:
拿出我的简历,问:说说项目难点,我想了想:没啥难点,之前看了点 session,就说这个吧。说了一堆后,感觉表述混乱了,因为面试官一脸懵逼。又反复问了 session 怎么处理的,没问出个所以然来。面试官最后直接问:说说 session 和 cookie 的区别,cookie 不安全,session 就一定安全?怎么做安全防范?
HTTP 和 HTTPS,能够详细说一下 HTTPS,加密过程吗?HTTPS 是否只用了对称加密?
TCP 为什么需要三次握手,而不是两次,四次?被怼了好久,都感觉自己背的八股到底对不对了
经典问题,GET 和 POST 区别。
了解 HTTP1.0 和 2.0 吗?说说区别?
开始 JS 的题目了。
ES6 的
extends
用过吗?说说
prototype
和__proto__
function test(){ } let obj = {}
以上面代码为例,说说上面 test 和 obj 的
prototype
和__proto__
给定代码,写继承
function father(){ this.test = ()=>{ console.log(1) } } function son(){} let obj = new son() obj.test()
让
son
继承father
number 类型的数字过大存不下怎么办?是显示 Infinitely 还是截断截取?学过 C 语言和 Java 没有?它们的数值有没有相关问题?
0.1+0.2
的结果(数值相关的问题追着问我了好久)使用 JS 实现一个 repeat 方法,
function repeat (func, times, wait) {}, const repeatFunc = repeat(alert, 4, 3000),
调用这个 repeatedFunc(“hellworld”),
会alert
4 次 helloworld, 每次间隔 3 秒
我写的代码:不知道对不对。。。先粘这function repeat(func, times, wait) { let t = times; let lock = null; return (arg) => { while (times > 0) { if (lock !== null && times > 0) { lock = setInterval(() =>{ func(arg); times -= 1; lock = null; }, wait) } } } }
说说基本类型,我写了六个,面试官提示有七个,我说还有 BigInt,只知道存储大整数的。
apply,call,bind 的区别
你说熟悉 balabala 数据结构,挑一个数据结构,我出个题。我挑的数组。给的是求数组最大序列和,与 leetcode 不同,要求给出最大序列和的具体索引。
我当时写的代码:是不对的,先粘这function solu(arr) { let pre = arr[0]; let maxAns = arr[0]; let q = [0]; for (let idx = 1; idx < arr.length; idx++) { pre = Math.max(pre + arr[idx], arr[idx]); if (pre === arr[idx]) { q = []; q.push(idx); } else { q.push(idx-1); q.push(idx); } maxAns = Math.max(pre, maxAns); } let res = []; for (let i of q) { res.push(arr[i]); } return res; }
反问,技术栈?我需要补充哪些知识?
面试官: 大部分是 React,也有 Vue,看具体场景。你的基础知识不好。我感觉对应届生来说,上来就要你多少多少框架的公司并不好。计网,HTTP,TCP,JS 的基础问题是面试必定会问的,要多看。基础,JS 基础要多看多练,闭包和原形是重点,原形又会引入继承。框架不用太深入。工作两三年的我才会问框架问题。
- 面试官男的,胖胖的,看起来年纪比我大,或者说老成?全程表情感觉没啥变化。我笑的时候他没表情,感觉很尴尬😅*
总结
- Q T M D 八股文,平时感觉记得好,一到了面试时会结结巴巴,看来还是要尽量理解才能记得准,记得牢。
- JS 砖头书要拿起来啃,但是感觉来不及了啊。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论。