2019前端面试题

CSS

  1. BFC
  2. 清除浮动
    方式一:使用overflow属性来清除浮动
        .ovh{
          overflow:hidden;
         }

注意:一般情况下也不会使用这种方式,因为overflow:hidden有一个特点,离开了这个元素所在的区域以后会被隐藏(overflow:hidden会将超出的部分隐藏起来).
方式二:使用额外标签法
    .clear{
      clear:both;
     }
    在浮动的盒子之下再放一个标签,在这个标签中使用clear:both,来清除浮动对页面的影响.
      a.内部标签:会将这个浮动盒子的父盒子高度重新撑开.
      b.外部标签:会将这个浮动盒子的影响清除,但是不会撑开父盒子.
    注意:一般情况下不会使用这一种方式来清除浮动。因为这种清除浮动的方式会增加页面的标签,造成结构的混乱.
方法三:使用伪元素来清除浮动(after意思:后来,以后)
    .clearfix:after{
      content:"";//设置内容为空
      height:0;//高度为0
      line-height:0;//行高为0
      display:block;//将文本转为块级元素
      visibility:hidden;//将元素隐藏
      clear:both//清除浮动
     }
    .clearfix{
      zoom:1;为了兼容IE
    }
  方法四:使用双伪元素清除浮动
    .clearfix:before,.clearfix:after {
content: “”;
display: block;
clear: both;
}
.clearfix {
zoom: 1;
}

总结:第一种方法会将超出部分隐藏在某些时候我们想清除浮动并且保留超出部分时做不到,第二种方法会增加许多不必要的标签,
      所以我们尽量使用第三种方法来清除浮动,为什么不选择第四种方法呢?因为第四种是第三种的改良版虽然比较简便,但是不
      严谨!
4. 居中问题
1.通过margin: 0 auto; text-align: center实现CSS水平居中。
通过display:flex实现CSS水平居中
2.通过display:flex实现CSS水平居中的原理是父元素display:flex;flex-direction:column;而子元素align-self:center;
这个跟CSS垂直居中的原理是一样的,只是在flex-direction上有所差别,一个是row(默认值),另外一个是column。
3.通过display:table-cell和margin-left实现CSS水平居中。
对于父元素和子元素的宽度都确定的情况,适合通过display:table-cell和margin-left实现CSS水平居中。
使用时,父元素display:table-cell,子元素给剩余宽度一半的margin-left。
4.通过position:absolute实现CSS水平居中。
这种方法跟上一个方法适用场景一样,也是适用于父元素和子元素的宽度都确定的情况。
使用时,父元素position:absolute,子元素给剩余宽度一半的margin-left。
5.通过width:fit-content实现CSS水平居中。
这种方法可以确保子元素宽度不确定的情况下,也能实现CSS水平居中。
需要注意的是,需要配合“margin: 0 auto; text-align: center”使用。

  1. 选择器
  2. 1px解决方案
  3. 移动端适配
    JS
  4. 手动实现一个原生的ajax请求
  5. http缓存
  6. header 头部内容
  7. cookie,localstorage和sessionstroage
  8. vue双向数据绑定
  9. 跨域
  10. 类数组转化成数组
  11. 防抖与截流
  12. 事件冒泡,事件委托
  13. 一个数组里N个数的和为sum
  14. 高阶函数
  15. prototype实现继承
  16. property和attribute区别
  17. 标准模式和混杂模式区别
  18. 算法题2:实现一个函数,接收三个参数,请求的urls,最大请求数max,回调函数cb,所有请求结束后调用cb,且并发请求数不超过max
  19. 一面主要是 常用函数实现bind,new,Object.create;跨域问题,xsrf防范等
  20. Promise实现原理里面的链式调用
  21. 给一颗二叉树和一个值,检查二叉树中是否存在一条路径,这条路径上所有的节点值加起来等于给的那个初始值。例如下面的二叉树,如果初始值22,那么存在一条路径5->4-11->2请实现如下函数
    function hasPathSum(root,sum){}
    2019前端面试题_第1张图片
    25.可以批量请求数据所有的URL地址在erls参数中,同时可以通过max参数控制请求的并发度,当所有请求结束之后,需要执行callback回掉函数。发请求的函数可以直接使用fetch即可
    function sendRequert(urls:string[],max:number,callback:()=>void){}

2019前端面试题_第2张图片

你可能感兴趣的:(面试题)