• 前端面试题总结三


    一 以下哪些属性脱离了文档流

      A. static  B. relative  C. absolute D. fixed  E. float

    答案是:  B.D.E

    • static:无特殊定位,对象遵循正常文档流。top,right,bottom,left等属性不会被应用。
    •  relative:对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。
    •  absolute:对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。
    •  fixed:对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。而其层叠通过z-index属性定义。
    • 可以说是float是部分脱离文档流,而absolute是完全脱离文档流。也就是说,使用float属性时,其他元素会无视这个float元素,但是其他元素内的文本依然会为这个元素让出位置,环绕在周围(感觉类似于word文字环绕功能),所以称为部分无视。而使用absolute脱离文档流的元素,其他盒子无论是本身还是盒子内的文本都会无视这个元素,也就是完全脱离文档流。

    二 以下的输出结果

     function fn(){
          var a=b=5
       }
      fn()
      console.log(a,b)

    答案是:报错Uncaught ReferenceError: a is not defined

    如果改为如下输出结果是什么呢
      function fn(){
         a=b=5
      }
      fn()
      alert(a)
      alert(b)

    答案是:5,5 

       因为没有声明默认变量a和b是全局的

       var a
       function fn(){
         a=b=5
      }
      fn()
      alert(a)
      alert(b)
    答案是:5,5   

        第一个a的输出是5很正常,但是为什么b的输出也是5呢,因为赋值是从右往左进行的,也就是说这一行先执行b=1,这时候b就是全局变量了,没有被var过。然后是var a = b;

        a被声明了,是局部变量。或者说var a=b=1;计算优先级 创建全局变量b=1,再在函数中定义一个变量a,a=b

    三 以下的输出顺序

      console.log('one')
      setTimeout(function(){
        console.log('two')
      },0)
      console.log('three')

    答案是:one three two

    四 css常见的水平居中问题

     这个答案就不做介绍了,方法太多了,有知道宽高的,有不知道宽高的,如用translate等,还有flex布局方法的table布局方法的等等

  • 相关阅读:
    文件系统之磁盘配额
    mysql之基础操作
    mysql-两种方式安装
    文件系统之parted 分区
    JDK1.7配置及测试
    ASP.NET中处理自定义错误的最佳方式
    C#使用System.Data.SQLite操作SQLite
    C#判断ip地址是否ping的通
    C#的WinForm中制作饼状图和柱状图
    使用.net(C#)发送邮件学习手册(带成功案例)
  • 原文地址:https://www.cnblogs.com/hongsusu/p/9118209.html
Copyright © 2020-2023  润新知