前端面试题

发布时间:2019-01-08 14:06:12   来源:文档文库   
字号:

CSS3 box-sizing的作用

设置CSS盒模型为标准模型或IE模型。标准模型的宽度只包括content,二IE模型包括borderpadding

box-sizing属性可以为三个值之一:

content-box,默认值,borderpadding不计算入width之内

padding-boxpadding计算入width

border-boxborderpadding计算入width之内

介绍一下sass

定义变量 css嵌套 允许在代码中使用算式 支持if判断for循环

说说content-boxborder-box,为什么看起来content-box更合理,但是还是经常使用border-box

content-box W3C的标准盒模型 元素宽度=内容宽度+padding+border

border-box ie的怪异盒模型  他的元素宽度等于内容宽度  内容宽度包含了paddingborder

 比如有时候在元素基础上添加内距paddingborder会将布局撑破 但是使用border-box就可以轻松完成

display:nonevisibility:hidden的区别?

display:none  隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢,

就当他从来不存在。

visibility:hidden  隐藏对应的元素,但是在文档布局中仍保留原来的空间。

垂直居中有几种实现方式,分别是什么

单行行内元素 1.可以设置padding-top,padding-bottom 2.heightline-height设为相等

多行行内元素 1.可以将元素转为table样式,再设置vertical-alignmiddle; 2.使用flex布局

块级元素

已知高度绝对定位负边距

未知高度transform: translateY(-50%);

flex布局 

display: flex;

justify-content: center;

align-items: center;

如何用css实现单行文字省略和多行文字省略

清除浮动的几种方式,各自的优缺点
1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签)
2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE
3.是用afert伪元素清除浮动(用于非IE浏览器)

remem的区别

em相对于父元素,rem相对于根元素

letconst的区别

let声明的变量可以改变,值和类型都可以改变,没有限制。

const声明的变量不得改变值

”==”“===”的不同
前者会自动转换类型
后者不会

介绍一下HTML5的新特性

新的DOCTYPE声明   html> 

完全支持css3

videoaudio

本地存储

语义化标签

canvas

新事件 ondrag onresize

编写一个数组去重的方法

DOM操作——怎样添加、移除、移动、复制、创建和查找节点。

创建新节点

2. 添加、移除、替换、插入

3. 查找

JavaScript怎么清空数组?

var arrayList = ['a','b','c','d','e','f'];

怎么清空 arrayList

方法1

arrayList = [];

直接改变arrayList所指向的对象,原对象并不改变。

方法2

arrayList.length = 0;

这种方法通过设置length=0 使原数组清除元素。

方法3

arrayList.splice(0, arrayList.length);

和方法2相似

介绍一下你对webpack的理解,和gulp有什么不同

Webpack是模块打包工具,他会分析模块间的依赖关系,然后使用loaders处理它们,最后生成一个优化并且合并后的静态资源。

gulp是前端自动化工具 能够优化前端工作流程,比如文件合并压缩

javaScript中的this是什么,有什么用,它的指向是什么

全局代码中的this  是指向全局对象

作为对象的方法调用时指向调用这个函数的对象。

作为构造函数指向新创建的对象

使用applycall设置this

跨域通信有哪些方案,各有什么不同

JSONP:由于同源策略的限制,XmlHttpRequest只允许请求当前源,script标签没有同源限制

通过动态