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)