前端知识点汇总(一)

  1. flex 是 flex-grow、flex-shrink、flex-basis的缩写。
    flex 的默认值是 0 1 auto
    当 flex 取值为 none,则计算值为 0 0 auto
    当 flex 取值为 auto,则计算值为 1 1 auto
    当 flex 取值为一个非负数字,则该数字为 flex-grow 值,flex-shrink 取 1,flex-basis 取 0%
    当 flex 取值为一个长度或百分比,则视为 flex-basis 值,flex-grow 取 1,flex-shrink 取 1
    当 flex 取值为两个非负数字,则分别视为 flex-grow 和 flex-shrink 的值,flex-basis 取 0%
    当 flex 取值为一个非负数字和一个长度或百分比,则分别视为 flex-grow 和 flex-basis 的值,flex-shrink 取 1
    原文地址:https://segmentfault.com/q/10...
  2. 实现call()

    Function.prototype.myCall = function (context, ...arg) {
       const fn = Symbol('临时属性')
       context[fn] = this
       context[fn](...arg)
       delete context[fn]
       }
  3. requestAnimationFrame 会把每一帧中的所有 DOM 操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率。
    在隐藏或不可见的元素中,requestAnimationFrame 将不会进行重绘或回流,这当然就意味着更少的 CPU、GPU 和内存使用量。
  4. 内存泄漏的常见场景:
    缓存:存在内存中数据一只没有被清掉
    作用域未释放(闭包)
    无效的 DOM 引用
    没必要的全局变量
    定时器未清除(React中的合成事件,还有原生事件的绑定区别)
    事件监听为清空
    内存泄漏优化
  5. Http 1.0的致命缺点,就是无法复用TCP连接和并行发送请求,这样每次一个请求都需要三次握手,而且其实建立连接和释放连接的这个过程是最耗时的,传输数据相反却不那么耗时,还有本地时间被修改导致响应头expires的缓存机制失效的问题。
    Http 1.1的致命缺点:
    1.明文传输
    2.其实还是没有解决无状态连接的
    3.当有多个请求同时被挂起的时候 就会拥塞请求通道,导致后面请求无法发送
    4.臃肿的消息首部:HTTP/1.1能压缩请求内容,但是消息首部不能压缩;在现今请求中,消息首部占请求绝大部分(甚至是全部)也较为常见
    HTTP2.0的主要优点有采用二进制帧封装,传输变成多路复用,流量控制算法优化,服务器端推送,首部压缩,优先级等特点

你可能感兴趣的:(html5,html,css,javascript)