内存泄漏、块级格式化上下文、语义化标签的作用

一、内存泄漏?

定义:程序中已经分配的堆内存由于某种原因无法被释放或未释放,由此造成的系统内存浪费行为。

有哪些常见的内存泄漏?

1.意外的全局变量

  一个函数体内的变量没有使用var或let关键字进行声明,此时这个变量将变为全局变量。

  解决办法:使用严格模式 use strict。

2.未被清除的定时器或者回调函数:

  定时器setInterval或者setTimeout使用之后没有clear掉,定时器的回调函数及其内部依赖的变量会无法释放,造成内存泄漏。

  解决办法:使用完之后调用相应的clearInterval或者clearTimeout进行清除;在回调函数使用过后移除(常见场景为在组建挂载时创建,组建销毁时移除)

3.基础的DOM泄漏

  原有的DOM结点被清除时,它的引用没有清除导致的内存泄漏。

  解决办法:节点清除后将它的引用也清除(设为null)

4.使用不当的闭包

  由于闭包的特性,使用不当会造成内存泄漏。

  解决办法:闭包函数使用过后,将不需要的局部变量删除。

5.控制台输出consle.log

  解决办法:清除控制台打印

 

二、块级格式化上下文(block formate content)

定义:BFC是一个独立的盒子,盒子内的元素不会影响盒子外元素的布局。反之亦然;BFC计算高度时会自动加上浮动元素的高度。

设置方法:有浮动或者绝对定位、display为inline-blocks | table-cells | table-captions、overflow不是visible,而是其他值。

应用:自定义的两栏、三栏布局、解决父盒子高度塌陷问题。

 

三、语义化标签

定义:语义化标签就是一种我们仅通过标签名就能判断出该标签内容的语义的标签。

作用:有良好的结构和语义,网页内容容易被搜索引擎抓取,有利于SEO;可维护性更高,结构清晰,易于阅读。

常用标签: 头部header 导航区域nav 主要代码区域main 划分独立的区域块section 区域块中的文档or文章信息artice  侧边栏aside 底部footer 

posted @ 2022-12-22 21:36  新时代的搬砖人  阅读(38)  评论(0)    收藏  举报