第一次去字节面试,面的是前端的飞书,由于自己学的太杂,前端方面反而学的不够精,同时准备时间也不多,这次就体验了一次被问的一脸懵逼的感觉。
1.首先是自我介绍我介绍了自己来自哪所大学,做过哪些项目,学到了什么。
2.问大学学所学课程C、C++、Java、数据结构、计算机网络、Web开发、PHP、软件工程导论、软件需求等。
3.计算机网络所学内容学到了网络的架构,有标准的7、5、4层,目前在学。
4.计算机网络的7、5、4层模型在这里插入图片描述
5.http属于哪一层模型属于应用层
6.对数据结构理解数据结构是一种具有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操作的数据元素的集合。它包含三方面的内容,逻辑关系、存储关系以及操作。正确的算法的含义是:能够解决实际问题,输入的所有可能的合法的输入都能产生预期的正确的结果;能够在有穷的步骤内执行完程序;能够用最简短的语句最高效的完成任务。
7.数据结构里面学到了什么数组、栈、队列、链表、树、图、堆、散列表
8.数据结构里面的树有哪些特殊的树二叉树、平衡二叉树、B树、B+树、B*树等
其中二叉树分为满二叉树和完全二叉树
9.排序算法有哪些冒泡排序、选择排序、快速排序、归并排序等
10.查找算法有哪些顺序查找、二分查找、插值查找、哈希查找等
11.对空间复杂度和时间复杂度的理解时间复杂度的全称是渐进时间复杂度(asymptotic time complexity),表示算法的执行时间与数据规模之间的增长关系。
空间复杂度全称就是渐进空间复杂度(asymptotic space complexity),表示算法的存储空间与数据规模之间的增长关系。
12.冒泡排序的时间复杂度O(n2)
13.时间复杂度里面为什么有个log比如
for (int i=1;i循环log2(n)次
14.数据库分为哪两种数据库
根据log换底公式
最终复杂度写成Ο(log(n))
关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。
非关系型数据库,指分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。NoSQL数据库技术与CAP理论、一致性哈希算法有密切关系。NoSQL数据库适合追求速度和可扩展性、业务多变的应用场景。
15.JS闭包算法题写出下面这段代码打印的结果:
var result = []; var a = 3; var total = 0; function foo(a) { var i = 0; for (; i < 3; i++) { result[i] = function() { total += i * a; console.log(total); } } } foo(1); result[0]();//3 result[1]();//6 result[2]();//916.了解过js的闭包吗建议查看这篇Javascript 闭包和递归(和上一篇对应)。
17.Js有哪些数据类型参考这篇文章
18.为什么要使用Vuevue的优势:轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快。
19.Vue的双向数据绑定底层实现原理(用js)参考这篇Vue的双向绑定原理和实现
20.什么是设计模式参考这篇什么是设计模式
21.什么是事件循环参考这篇深入理解Javascript的事件循环(Event Loop)
22.什么是冒泡事件参考这篇什么是冒泡事件?
23.总结由于平时做项目我都是做后端的,前端这部分局限在了解的阶段。后面面试我已经知道自己还有很多需要完善的地方,问了前辈有什么意见吗。前辈说,做计算机这个行业,做前端是要成为一个软件工程师,哪些方面都要了解一点,不能太过于局限。
总之,六月再战吧!



