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