总结重要知识点

一:this指向问题
this谁调用指向谁
.call的第一个参数就是指向
在这里插入图片描述
二:执行顺序
函数一般都是顺序执行 但遇到异步函数不是
function test1(name,callBack){
callBack();
console.log(name)
}
function callBack(){
setTimeout(function(){
console.log(“我是回调”)
},1000)
}
test1(“tom”,callBack) // 执行顺序 tom 我是回调 因为callBack是异步函数

三:找出最大差值
使用的是函数sort排序
sort是个比较函数 return 负数,不交换位置。return 正数,交换位置
在这里插入图片描述
四:for in 和 for of 的区别
for in 和for of
使用for in 来遍历数组,拿到的是数组的索引
使用for in 来遍历对象,拿到的是对象的属性名,可以通过obj[属性名]来获取属性值
使用for of 来遍历数组,拿到的是数组的每一项的值
for of 不可以遍历对象

五:外边距合并问题
父子级
1.给父元素添加边框 border: 1px solid green;
2.给父元素添加 overflow: hidden;
3.给父元素或者子元素添加浮动float: left;
4.给父元素或者子元素添加绝对定位position: absolute;
5.给父元素或者子元素添加display: inline-block;
兄弟级
水平方向:外边距会进行叠加
重直方向
如果都是正数,那么会进行合并,并且取较大的值
如果都是负数,那么会进行合并,并且取绝对值较大的值
如果一个是正数,一个是负数,会叠加,不会进行合并

六:盒子模型 box-sizing
1标准盒子模型 content-box
宽度:左右边框 + 左右padding + 内容区宽度
高度:上下边框 + 上下padding + 内容区高度
盒子在视图区
宽度:左右边框 + 左右padding + 内容区宽度 + 左右margin
高度:上下边框 + 上下padding + 内容区高度 + 上下margin
width: 内容区宽度
height: 内容区高度
2IE盒子模型 border-box
盒子的宽度:width
盒子的高度:height
内容区的宽度: width - 左右边框宽度 - 左右padding
盒子在视图区
宽度:width + 左右margin
高度:height + 上下margin

七:px em rem 的区别
px:精准的单位,像素点
em:相对父元素的字体大小
rem:根据根元素进行参考

八.定位
相对定位,不脱离文档流,以自己本身的位置进行偏移
绝对定位,脱离文档流,根据浏览器左上角进行定位 如果父元素有定位属性,那么根据父元素的左上角进行定位

九:.脱离文档流float和absolute
float:对文本不进行遮挡,脱离文档流,不脱离文本流
absolut:全部遮挡,脱离文本流又脱离文档流

十.slice()不改变原数组
一个参数:那么返回从该索引位置进行索取
如果是负值,那么数组的长度加上这个负数得到的数就是索引开始的位置
两个参数:第一个参数代表索引开始的位置,第二个参数代表结束的位置,并且截取的时候不包括结束的位置
在这里插入图片描述

十一.splice()改变原数组
第一个值:索引开始的位置
第二个值:要删除的项数
第三个值:要替换或者删除的值
注意:在进行插入操作的时候,第二个值必然是0 ,第三个值插入到当前索引位置之前
在这里插入图片描述例子:
在这里插入图片描述