欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端面试题总结

程序员文章站 2022-06-09 11:18:44
...

如何让一个浮动元素居中

<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属性生效