前端面试每日3+2(第6天)

12/7/2019 每日3+2

当你发现自己的才华撑不起你的野心时,就请安静下来学习吧!

鲁迅说过:答案仅供参考...

# 1、什么是原型链?

解析:

  • ①所有引用类型都有一个__proto__(隐式原型)属性,属性值是一个普通的对象
  • ②所有函数都有一个prototype(原型)属性,属性值是一个普通的对象
  • ③所有引用类型的__proto__属性指向它构造函数的prototype

# 2、px、em、rem的区别以及选取的依据?

解析:

  • px像素(Pixel)。
    • 相对长度单位。像素px是相对于显示器屏幕分辨率而言的。
  • em是相对长度单位。
    • 相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸
    • 任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。
    • em特点
        1. em的值并不是固定的;
        1. em会继承父级元素的字体大小。
  • rem
    • rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。

# 3、css权重如何计算?

解析:
!important>行间样式>id>class|属性>标签选择器>通配符

# 4、如何中断一个Promise?

解析:

  1. 抛出异常
  2. 通过reject来中断
  3. abort()

# 5、水平居中,垂直居中的方法?

解析:
垂直居中:

  1. 子 verticle-align:middle + 子 display:inline-block
  2. 父 display:flex + 子 align-self:center;
  3. 父 :before + 方法1
  4. 父 display:table + 子:display:table-cell
  5. 通过隐藏节点实现CSS垂直居中
  6. 已知父元素高度通过transform实现CSS垂直居中。给子元素的position:relative,再通过translateY即可定位到垂直居中的位置。
  7. 未知父元素高度通过transform实现CSS垂直居中。
  8. 通过line-height实现CSS垂直居中。

水平居中:

  1. 通过margin: 0 auto; text-align: center实现CSS水平居中。
  2. 通过display:flex实现CSS水平居中。
  3. 通过display:table-cell和margin-left实现CSS水平居中。
  4. 通过position:absolute实现CSS水平居中。
  5. 通过width:fit-content实现CSS水平居中。
  6. 通过display:inline-block和text-align:center实现CSS水平居中。
  7. 通过position:relative、float:left和margin-left实现CSS水平居中。
  8. 通过隐藏节点+float的方法实现CSS水平居中。
  9. 通过transform实现CSS水平居中。
Last Updated: 2/24/2020, 9:02:17 AM
    asphyxia
    逆时针向