CSS:
1、BFC
BFC即为块格式化上下文,页面中的一块渲染区域,并且有一套自己的渲染规则,决定了其他子元素如何定位以及和其他元素的关系、相互作用。与区域外部毫不相干。
满足下列CSS声明的会生成BFC:
根元素html
float的值不为none
overflow的值不为visible
display的值为inline-block、table-cell、tabel-caption
position的值为absolute或fixed
BFC约束规则:
内部的box在垂直方向上排列
垂直方向上的距离由margin决定,会发生margin重叠
BFC的区域不会与float的元素区域重叠
计算BFC的高度时,浮动子元素也参与计算
BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面元素,反之亦然
看到以上的几条约束,想想我们学习css时的几条规则
Block元素会扩展到与父元素同宽,所以block元素会垂直排列垂直方向上的两个相邻DIV的
margin会重叠,而水平方向不会(此规则并不完全正确)
浮动元素会尽量接近往左上方(或右上方)
为父元素设置overflow:hidden或浮动父元素,则会包含浮动元素
BFC应用:
防止margin塌陷
清除浮动
自适应两栏布局
2、伪元素与伪类的区别:
3、重排与重绘:
4、flex布局属性:
Js部分: 1、闭包、垃圾回收机制
2、原型链
3、es6方法
4、promise
5、async、await
6、
class B {
fn() {
console.log(this);
}
}
let b = new B();
let Fn = b.fn();
Fn();
7、forEach、map的区别以及怎么中断。
相同点:都是循环遍历数组的每一项
不同点:map会返回一个新的数组,forEach不会返回新数组
不能使用break、continue,只能使用throw Error()抛出异常进行终止循环。
8、浏览器的事件循环
9、设计模式
10、ts基本类型、交叉类型、联合类型
11、js深拷贝浅拷贝
12、匀速、匀加速、匀减速js动画实现(window.requestAnimationFrame)
13、字符串模板函数实现
const template = "My name is ${name}, age is ${age}";
const str = sprintf(template, {
name: "xiaoming",
age: 18
}); // My name is xiaoming, age is 18
14、数组扁平化、去重、排序实现。
15、堆栈、内存泄露、常见的内存泄露:(闭包,setInterval)
16、跨域,除了ajax请求,还有哪些会报跨域错误。
vue:
1、$nextTick原理及实现
2、vue props原理