前端面试总结(一)

1.对HTML5缓存的了解

客户端存储数据的两个对象为:

  • localStorage:用于长久保存整个网页的数据,保存的数据没有过期时间,直到手动删除。
  • sessionStorage:用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

用法(localStorage和sessionStorage类似):

  • 保存数据:localStorage.setItem(key,value)
  • 读取数据:localStorage.getItem(key)
  • 删除单个数据:localStorage.removeItem(key)
  • 删除所有数据:localStorage.clear()
  • 得到某个索引的key:localStorage.key(index)

2.关于行内元素、行内块级元素、块级元素的区分

  • 行内元素:宽高设置无效,对margin仅在左右方向有效,上下无效,不自动换行。
<span>内联容器
<strong>粗体强调
<b>粗体
<i>斜体
<select>下拉列表
<a>链接
  • 行内块级元素:不自动换行,可设置宽高和内外边距
<img>图片
<button>按钮
<input>输入框
<code>
<audio>音频
<video>视频
  • 块级元素:独占一行,可设置宽高,块级元素中可包含块级元素和行内元素,块级文字元素中不能放入其他块级元素。
<div>块级容器
<h1>~<h6>标题
<p>段落
<ul>无序列表
<ol>有序列表
<dl>自定义列表
<table>表格
<form>表单

3.input有哪些类型?

  • text——文本
  • password——密码
  • number——数字
  • button——按钮
  • reset——重置
  • submit——提交
  • hidden——隐藏
  • radio——单选
  • checkbox——复选
  • file——选择文件按钮
  • image——图片
  • color——选择颜色
  • range——选择范围
  • date——日期选择框(年月日)
  • month——日期选择框(年月)
  • week——日期选择框(xx年的第x周)
  • time——时间选择(几点几分)
  • datetime-local——日期选择(年月日时分)

4.css的几种引入方式

  • 内联式:直接在标签中定义style属性,因为内容和样式仍在一起,不方便,不常用。
  • 嵌入式:在的

5.css几种引入方式的优先级

  • 就近原则
  • 理论上:行内>嵌入>链接>导入
  • 实际上:嵌入,链接,导入在同一个文件头部,谁离相应的代码近,谁的优先级高。

6.让一个div水平垂直居中的方法

给盒子设置绝对定位,将上下左右都设置为0,margin设置为auto。

div{
	width:200px;
	height:200px;
	background:green;
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	right:0;
	margin:auto;
}

给盒子设置绝对定位,将left,top设置为50%,然后margin-left和margin-top设置为负值盒子的一半大小。

	width:200px;
	height:200px;
	background:green;
	position:absolute;
	left:50%;
	top:50%;
	margin-left:-100px;
	margin-top:-100px;

利用flex弹性布局,父盒子的display设置为flex,justify-content和align-items都设置为center,这样盒子就水平垂直居中了。

.box{
	height:600px;
	display:flex;
	justify-content:center;
	align-items:center;
}
.box>div{
	width:200px;
	height:200px;
	background:green;
}

7.三种定位的解释,区别

  • absolute:绝对定位,偏移的参考点是:相对于最近的已定位的父元素,如果没有则相对于body 元素。
  • relative:相对定位,偏移的参考点是:相对于元素在普通流中的原来位置。
  • fixed:固定定位,偏移的参考点是:相对于浏览器屏幕。

relative和fixed偏移后,div原来所占位置不会被下面的div占据。

absolute偏移后,意味着它失去了文档流的位置,后面的文档流会紧跟着补上来接替它们的位置。

子绝父相:子元素绝对定位,父元素相对定位,让子元素以其父元素为标准来定位。如果不这么做,子元素就会相对body或浏览器定位,产生不好的效果。

8.float和position的区别

float:元素从文档流中移除,但会保持元素的容器大小,置于元素的最左边或最右边(即保留部分的流动性,未脱离文档流)
position:absolute:绝对定位的元素脱离了文档流和文本流。在布置文档流中其他元素时,绝对定位元素不占据空间。
总结:float和absolute都失去了在文档流中的正常位置,但float保留了在文档流中的容器,只是位置发生了改变,而absolute彻底脱离了文档流,形成了一个依附于祖先元素的文档容器。

9.javascript的几种基本数据类型

  • string
  • number
  • boolean
  • undefined
  • null

10.说几种数组方法

  • join():将数组的元素组成一个字符串,以括号内参数为分隔符,省略的话,则默认逗号分隔。
  • push():可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度。
  • pop():移除数组最后一个元素,减少数组的长度,然后返回移除的项。括号内无参数,即使有参数,也是删除最后一项。
  • shift():删除原数组第一项,并返回删除的元素的值,如果数组为空则返回undefined。
  • unshift():将参数添加到原数组开头,并返回数组的长度。
  • sort():按升序排列数组项,即由小到大。
  • reverse():反转数组项的顺序。
  • concat():将参数添加到原数组中,这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组,在没有concat()方法传参时,他只是复制当前数组并返回副本。
  • slice():返回从原数组中指定开始下标到结束下标之间的项组成新数组,可接受一或两个参数,在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到末尾的所以项。如果有两个参数,返回起始和结束位置之间的项,但不包括结束位置的项。
  • splice():很强大的数组方法,可以实现删除、插入和替换。
    删除:两个参数,要删除的第一项的位置和要删除的项数,例如:splice(0,2)会删除数组的前两项。
    插入:三个参数,起始位置,要删除的项数(0),要插入的项。例如:splice(2,0,4,6)会从当前数组的位置2开始删除0项并插入4和6这两项。
    替换:三个参数,起始位置,要删除的项数,要插入的项。例如:splice(2,1,4,6)会删除当前数组的位置2的项,然后再从位置2开始插入4和6这两项。

11.对闭包的理解

正常情况下,在js语言中,函数内部可以读取全局变量,但在函数外部无法读取函数内部的局部变量。
但有时候就是需要获取到函数内部的局部变量,这时就需要在函数内部再定义一个函数,这个内部函数就可以获取到外部函数的变量了。
这个在函数内定义的函数就是闭包。
对闭包的理解:闭包就是在函数内定义的函数,是能够读取其他函数内部变量的函数。
闭包的用途:读取函数内部的变量;让这些局部变量的值始终保持在内存中,不会被自动清除。
使用闭包的注意点:闭包会让变量不被清除,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,导致内存泄漏;闭包会在父函数外部改变父函数内部变量的值。

12.vue路由的两种模式

  • hash模式
  • history模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值