前端面试题总结
2018-12-28 本文已影响0人
Wang_Yong
如何让一个浮动元素居中
<div class="box">
<div class="item">ghj</div>
</div>
<style>
.box {
positon: relative;
float: left;
left: 50%;
}
.item {
position: relative;
float: left;
left: 50%;
}
</style>
什么是闭包
当一个内部函数被其外部函数之外的变量引用时,就形成一个闭包。
简单来说,所谓的闭包,就是一个具有封闭的对外不公开的,包裹结构或空间。
- 为什么函数可以构成闭包?
闭包就是一个具有封闭与包裹功能的结构,是为了实现具有私有访问空间的函数的。函数可以构成闭包。函数内部定义的数据函数外部无法访问,即函数具有封闭性;函数可以封装代码即具有包裹性,所以函数可以构成闭包。 - 闭包有什么用(特性)
闭包的作用,就是保存自己私有的变量,通过提供的接口(方法)给外部使用,但外部不能直接访问该变量。
当我们需要在模块中定义一些变量,并希望这些变量一直保存在内存中但又不会“污染”全局的变量时,就可以用闭包来定义这个模块。 - 闭包的缺点:
闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。 - 函数套函数就是闭包吗?
不是!,当一个内部函数被其外部函数之外的变量引用时,才会形成了一个闭包。
什么是原型链
凡是对象就有原型,那么原型又是对象,因此凡是给定一个对象,那么就可以找到他的原型,原型还有原型,那么如此下去,就构成一个对象的序列,称该结构为原型链。
display: block 和 display: inline的区别
-
block
元素特点
处于常规流中时,如果
width
没有设置,会自动填充满父容器
可以应用margin/padding
在没有设置高度的情况下会扩展高度以包含常规流中的子元素
处于常规流中时布局时在前后元素位置之间(独占一个水平空间)
忽视vertical-align
- inline元素特点
水平方向上根据direction依次布局
不会在元素前后进行换行
受white-space控制
margin/padding在竖直方向上无效,水平方向上有效
width/height属性对非替换行内元素无效,宽度由元素决定
非替换行内元素的行高有line-height确定,替换行内元素的行高由height margin padding border决定
浮动或绝对定位时会转换为block
vertical-align属性生效