zoukankan      html  css  js  c++  java
  • 撩课-Web大前端每天5道面试题-Day1

    1. var的变量提升的底层原理是什么?

    JS引擎的工作方式是:
    1) 先解析代码,获取所有被声明的变量;
    2)然后在运行。也就是说分为预处理和执行两个阶段。
    变量提升:所有变量的声明语句都会被提升到代码头部。
    但是变量提升只对var命令声明的变量有效,如果一个变量不是用var命令声明的,就不会发生变量提升。

    2. JS如何计算浏览器的渲染时间?

     

    撩课小编:  浏览器的渲染过程主要包括以下几步:
    1) 解析HTML生成DOM树。
    2) 解析CSS生成CSSOM规则树。
    3) 将DOM树与CSSOM规则树合并在一起生成渲染树。
    4) 遍历渲染树开始布局,计算每个节点的位置大小信息。
    5) 将渲染树每个节点绘制到屏幕。
    优化考虑:
    CSS 优先:引入顺序上,CSS 资源先于 JavaScript 资源。
    JS置后:通常把JS代码放到页面底部,且JavaScript 应尽量少影响 DOM 的构建。

     

     

    3. JS的回收机制?

    撩课小编: 垃圾回收机制是为了以防内存泄漏,(内存泄漏: 当已经不需要某块内存时这块内存还存在着),  垃圾回收机制就是间歇的不定期的寻找到不再使用的变量,并释放掉它们所指向的内存。
    
    JS有两种变量: 全局变量和在函数中产生的局部变量。局部变量的生命周期在函数执行过后就结束了,此时便可将它引用的内存释放(即垃圾回收),但全局变量生命周期会持续到浏览器关闭页面。
    
    JS执行环境中的垃圾回收器有两种方式:标记清除(mark and sweep)、引用计数(reference counting)。
    
    标记清除:  垃圾收集器给内存中的所有变量都加上标记,然后去掉环境中的变量以及被环境中的变量引用的变量的标记。
    在此之后再被加上的标记的变量即为需要回收的变量,因为环境中的变量已经无法访问到这些变量。
    
    引用计数(reference counting):  这种方式常常会引起内存泄漏,低版本的IE使用这种方式。
    机制就是跟踪一个值的引用次数,当声明一个变量并将一个引用类型赋值给该变量时该值引用次数加1,
    当这个变量指向其他一个时该值的引用次数便减一。
    当该值引用次数为0时就会被回收。
    
    

    4. 垂直水平居中的方式?

    撩课小编: 
    方式一:  定位
    父元素设置为:position: relative; 
    子元素设置为:position: absolute; 
    距上50%,据左50%,然后减去元素自身宽度的距离就可以实现 
    
     100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -50px 0 0 -50px;
    
    方式二:  flex布局
    
    display: flex; //flex布局
    justify-content: center; //使子项目水平居中
    align-items: center; //使子项目垂直居中
    
    方式三:  table-cell  (不推荐)
    
    display: table-cell;
    vertical-align: middle;//使子元素垂直居中
    text-align: center;//使子元素水平居中
    

      

    5. 实现一个三栏布局,中间版块自适应方法有哪些?

    撩课小编:  浮动和定位
    浮动方式:
    
    <div class="content">
       <div class="left">left</div>
       <div class="right">right</div>
       <div class="center">center</div>
    </div>
    
    .left{
        float: left;
         100px;
        height: 200px; 
    }
    
    .right{
        float: right;
        padding: 0;
         100px;
        height: 200px;
    }
    
    .center{
        margin: 0 100px 0 200px;
    }
    
    
    方式二:  将父容器的position设置为relative,两个边栏的position设置成absolute。
     

     

  • 相关阅读:
    数据结构--窗口内最大值最小值的更新结构(单调双向队列)
    数据结构--BFPRT算法(TOP-K算法)
    数据结构--KMP算法(字符串匹配算法)--树的子结构
    数据结构--Manacher算法(最长回文子串)--生成最短回文串
    数据结构--KMP算法(字符串匹配算法)--在末尾添加字符串,是其包含字符串两次,且长度最短
    数据结构--Manacher算法(最长回文子串)
    数据结构--KMP算法(字符串匹配算法)
    剑指offer——和为S的连续正数序列
    剑指offer——删除链表中重复的结点
    XML DOM解析 基础概念
  • 原文地址:https://www.cnblogs.com/gxq666/p/10018565.html
Copyright © 2011-2022 走看看