前端测试题及答案
1. CSS有哪些选择器
id、class、父子、标签、*(通配符)、分组、兄弟、后代、伪类
2. 描述一下你对盒子模型的认识
作为一个容器,可以设置背景,颜色,边框,内外边距,浮动,定位,可以容纳各种标签,塌陷现象,块级元素都可做盒子。盒子占用的空间:外边距+内边距+内容
3. 使用CSS有哪三种方式,他们的优先级是如何排列的
行内,在html元素里书写style,在style中直接写样式代码 > 头部,在style标签中书写样式代码 > 使用link标签引用样式文件
4. CSS中长度单位有哪些
px、em(相对于父元素的字体大小)、%、cm、mm、in、pt、pc、rem(root em,相对于根元素的字体大小)(如果父元素的字体是1px,子元素是2em,就是2px,子元素的子元素是2em,就是4px,rem不管有多少层,都是针对1px的倍数)
5. 相对定位、绝对定位和固定定位的区别
绝对定位与父类有关,取决于父类,相对于页面的位置(相对定位),固定相对于浏览器(不会随浏览器动)
不释放空间(相对),释放空间(绝对),相对于浏览器左上角,释放空间(固定)
相对定位:不释放空间,相对于父元素。(页面流,页面上的元素就像一个流一样,每个元素占流中占用一个位置)
绝对定位:相对于已经定位过的父元素的位置,释放空间。
固定定位:相对于浏览器左上角,释放空间
6. JavaScript有几种数据类型
Boolean、Number、String、undefined、null、Object
7. let、var、const的区别
var定义数据,声明变量,存在变量提升。(提升就是在定义变量前可以使用该变量)
const不能重新赋值,但是const定义的对象内部是可以变化的
let是局部变量
8. null和undefined的区别
undefined是没有初始化变量(某人没有小金库)
null是用空来初始化变量(某人的小金库没有钱)
9. JavaScript中if(exp)结果为false有哪几种可能情况
exp为空或没有定义,值为零,NaN不是数字
10. 写出IP的正则验证
/^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/
11. JavaScript中数组有哪些常用方法,各有什么作用
unshift在数组前插入元素
shift移除数组的第一个元素
push在数组后面插入元素
pop移除数组最后一个元素
join返回一个用指定字符拼成的字符串,把数组的元素用指定的字符拼成一个字符串
sort排序
slice分隔(截断数组,子数组)
reverse反转数组
12. HTML5有哪些新特性
用html5实现flash功能,减少第三方插件;标签语意化;增加了一些标签(canvas)
13. 如何清除浮动
clear: left/right/both,清除前面的浮动的元素带来的影响。
14. 如何让一个DIV水平垂直方向上居中
html, body {
width: 100%;
height: 100%;
}
div {
border: red solid;
width:100px;
height:100px;
margin:-50px auto;
position:relative;
top:50%;
}