兴盛优选参考面经03
兴盛优选前端面经
内部员工回复
1、介绍一下栈和队列
2、介绍一下树和图
3、生活中常见的称作树的案例
4、请说出几种算法复杂度为O(n^2)的排序算法
5、请说出几种算法复杂度为O(nlgn)的排序算法
6、算法复杂度为O(n)的排序算法
7、算法设计题:买卖股票(一次买入一次卖出)——动态规划
8、算法设计题:买卖股票(多次买入多次卖出)——贪心算法
9、解释下什么是promise
Promise
对象用于表示一个异步操作的最终完成(或失败)及其结果值。- 存在三种状态:
- 待定(pending):初始状态,既没有被兑现,也没有被拒绝。
- 已兑现(fulfilled):意味着操作成功完成。
- 已拒绝(rejected):意味着操作失败。
.then
.catch
返回的也是也个Promise对象,所以它们可以被链式调用。
10、解释下原型链的概念
- 原型链可以简单理解为将原型连成一条链,
js
每一次获取对象中的属性都是一次查询过程,如果在自有属性中找不到就会去原型对象中查找,如果原型对象中还查不到,就回去原型对象的原型中查找,也就是按照原型链查找,直到查找到原型链的顶端,也就是Object
的原型。
11、普通函数和箭头函数的区别
- 语法更加简洁、清晰()
- 箭头函数不会创建自己的this(箭头函数不会创建自己的
this
,所以它没有自己的this
,它只会从自己的作用域链的上一层继承this
。) - 箭头函数继承而来的this指向永远不变(.call()/.apply()/.bind()无法改变箭头函数中this的指向)
- 箭头函数不能作为构造函数使用
- 箭头函数没有自己的arguments
- 箭头函数没有原型prototype
12、解释下弹性和布局
Flex
布局也称弹性布局,可以为盒状模型提供最大的灵活性,是布局的首选方案,现已得到所有现代浏览器的支持。(设为 Flex 布局以后,子元素的float
、clear
和vertical-align
属性将失效。)容器属性
flex-direction
:决定主轴方向 (row
column
)flex-wrap
:当轴线放不下成员时,是否换行 (wrap
nowrap
)flex-flow
:前两个属性(flex-direction
flex-wrap
)的缩写justify-content
:成员在主轴上的对齐方式 (flex-start
flex-end
center
space-between
space-around
)align-items
:成员在交叉轴上如何对齐 (flex-start
flex-end
center
stretch
baseline
)stretch
默认值:如果成员未设置高度或设为auto
,将占满整个容器的高度。baseline
: 成员的第一行文字的基线对齐。
align-content
:属性定义了多根轴线的对齐方式。如果成员只有一根轴线,该属性不起作用,取值为flex-start | flex-end | center | space-between | space-around | stretch
。
成员属性
order
:定义成员的排列顺序,数值越小,排列越靠前,默认为0
。flex-grow
:属性定义成员的放大比例,默认为0
flex-shrink
:属性定义了成员的缩小比例,默认为1
,即如果空间不足,该成员将缩小flex-basis
:属性定义了在分配多余空间之前,成员占据的主轴空间main size
,浏览器根据这个属性,计算主轴是否有多余空间,它的默认值为auto
,即成员的本来大小。flex
:属性是flex-grow
,flex-shrink
和flex-basis
的简写,默认值0 1 auto
。后两个属性可选。align-self
:**属性允许单个成员有与其他成员不一样的对齐方式,可覆盖align-items
属性。**默认值为auto
,表示继承父元素的align-items
属性,如果没有父元素,则等同于stretch
。
13、解释下绝对定位和相对定
relative
:相对定位,在不改变页面布局的前提下调整元素位置absolute
:绝对定位,相对于定位祖先元素进行偏移定位
14、操作系统的线程和进程的区别
进程:是执行中一段程序,一个程序被载入到内存中并准备执行,它就是一个进程,是系统进行资源分配和调度的一个基本单位。
线程:是进程的一个实体,是cpu 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,有时被称为轻量级进程。
进程是资源分配最小单位,线程是程序执行的最小单位;
进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据;
15、线程和进程哪一个对系统的资源占用更多
- CPU切换一个线程比切换进程花费小;
- 创建一个线程比进程开销小;
- 线程占用的资源要⽐进程少很多。
16、打开了两个标签页是进程还是线程
- 进程
17、介绍一下自己的项目情况
18、登录这一块怎么设计的
19、手机验证码登录怎么实现的
20、上传文件的功能
21、项目中最大的挑战是什么?
22、本科生课程有前端学习课程吗?
23、为啥选择做前端
24、有读研的打算吗
25、毕业之后想做什么,干什么类型的职位
26、预计可以实习多久,啥时候可以实习
27、反问