日常记录

119 阅读2分钟

1.href和src的区别

href引用链接资源,主要是建立两者之间的联系

src是下载到文档中

2.alt和title的区别

alt主要针对图片,没有图片显示时显示

title针对元素展示注释信息

3.盒子模型

ie盒子模型和w3c盒子模型

盒模型为content+border+padding+margin

ie盒模型中的content包含了border和padding

4.link和@import区别

link属于xhml标签,和页面同时加载,可能会阻塞页面渲染

@import属于css范畴,等待页面加载完成后在加载

5.display:none和visibility:hidden区别

display 时不占空间

visibility 会占用空间

6.BFC模型--块级格式化上下文

触发bfc特性因素

body跟元素、float布局、overflow属性、flex布局、绝对定位

7.变量提升

js在预编辑代码的过程中,会将变量、函数声明提到最前面,如果出现同名,函数会覆盖变量

8.闭包

闭包是一个函数,可以访问另一个函数内部变量的函数,常见创建的方式就是函数里面包函数

优点在于避免函数污染;缺点在于因为不会触发js垃圾回收机制,所以可能造成内存污染,可能会内存泄漏

9.js垃圾回收机制

两种方式:标记清除法和引用计数清除法

标记清除法:变量进入和离开环境分别会被标记为进入环境和离开环境,垃圾回收器运行时会清除掉在环境中的和闭包的变量,剩下身上还有标记的就是要被清除的变量;主要针对对象

引用计数清除法:标记每一个变量引用值的次数,当变量引用了一个值之后,该变量次数+1,当变量的引用值发生了变化,该变量次数-1,直至变为0,清除对应变量,一般bom和dom是用引用计数法处理

BOM和DOM

js由es、bom、dom组成

BOM:brower object model-浏览器对象模型,核心对象windows,下面包涵history、location、navigator、screen、frames

DOM:document object model-文档对象模型,document树

原型、原型对象、构造函数、原型链

js万物皆对象

函数有一个prototype属性,这个属性就是原型,该属性类似于一个指针指向一个对象,该对象就是原型对象

原型对象有一个属性constructor,指向该原型的构造函数

对象通过new构建出来,该对象有一个__proto__属性,指向原型对象

原型链:是有__proto__组成的一条链,原型链尽头是object.prototype

递归函数实例

1-100求和

function deep(num1,num2) {
    const sum = num1+num2
    if (num2===100) {
        return sum
    } else {
        return deep(sum,num2+1)
    }
}
deep(1,2)