2021年前端面试试题
在日常学习、工作生活中,我们最少不了的就是试题了,借助试题可以对一个人进行全方位的考核。一份好的试题都是什么样子的呢?下面是小编收集整理的2021年前端面试试题,仅供参考,希望能够帮助到大家。
1、简述一下前端MV框架的意义
早期前端都是比较简单,基本以页面为工作单元,内容以浏览型为主,也偶尔有简单的表单操作,基本不太需要框架。
随着AJAX的出现,Web2、0的兴起,人们可以在页面上可以做比较复杂的事情了,然后前端框架才真正出现了。
如果是页面型产品,多数确实不太需要它,因为页面中的JavaScript代码,处理交互的绝对远远超过处理模型的,但是如果是应用软件类产品,这就太需要了。
长期做某个行业软件的公司,一般都会沉淀下来一些业务组件,主要体现在数据模型、业务规则和业务流程,这些组件基本都存在于后端,在前端很少有相应的组织。
从协作关系上讲,很多前端开发团队每个成员的职责不是很清晰,有了前端的MV框架,这个状况会大有改观。
之所以感受不到MV框架的重要性,是因为Model部分代码较少,View的相对多一些。如果主要在操作View和Controller,那当然jQuery这类库比较好用了。
参考《前端MV框架的意义》
2、请简述盒模型
IE6盒子模型与W3C盒子模型。
文档中的每个元素被描绘为矩形盒子。盒子有四个边界:外边距边界margin,边框边界bder,内边距边界padding与内容边界content。
CSS3中有个box—sizing属性可以控制盒子的计算方式,
content—box:padding和bder不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和bder、padding之和。(W3C盒子模型)
bder—box:padding和bder被包含在定义的width和height之内。对象的实际宽度就等于设置的width值。
3、请你谈谈Cookie的弊端
a、每个特定的域名下最多生成的cookie个数有限制。
b、IE和Opera会清理近期最少使用的cookie,Firefox会随机清理cookie。
c、cookie的最大大约为4096字节,为了兼容性,一般不能超过4095字节。
d、安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。
4、浏览器本地存储
在HTML5中提供了sessionStage和localStage。
sessionStage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁,是会话级别的存储。
localStage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
5、webstage和cookie的区别
a、Cookie的大小是受限的
b、每次你请求一个新的页面的`时候Cookie都会被发送过去,这样无形中浪费了带宽。
c、cookie还需要指定作用域,不可以跨域调用。
d、WebStage拥有setItem,getItem等方法,cookie需要前端开发者自己封装setCookie,getCookie。
e、Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在,而WebStage仅仅是为了在本地“存储”数据而生
f、IE7、IE6中的UserData通过简单的代码封装可以统一到所有的浏览器都支持webstage。
6、对BFC规范的理解
BFC全称是BlockFmattingContext,即块格式化上下文。它是CSS2、1规范定义的,关于CSS渲染定位的一个概念。
BFC是页面CSS视觉渲染的一部分,用于决定块盒子的布局及浮动相互影响范围的一个区域。
BFC的一个最重要的效果是,让处于BFC内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。
利用BFC可以闭合浮动,防止与浮动元素重叠。