HTML
CSS
1.什么是BFC
block formatting context,不是none的浮动元素,绝对定位元素,inline-block,table-cell,table-caption和overflow值不是visible的块级盒子
为自己的内容建立一块新的排版上下文,盒子的垂直方向由margin决定,同属一个BFC相邻的盒子的margin会发生重叠,BFC区域不会与float box重叠,
它是一个隔离的独立容器。解决方法有overflow:hidden,清除内部浮动是父元素的高度计算浮动子元素
2.什么是外边距合并
块级父元素的第一个和最后一个的margin,相邻元素的margin,空块元素的margin会出项边距合并
3.什么是flex布局,有什么好处
弹性布局,可以省去常用的position定位的布局形式导致页面错位
JAVASCRIPT
1.排序,找出最大三个数
2.继承的实现方式
3.创建实例对象的内部过程
第一步创建一个新的空对象,第二步将新对象的原型指向构造函数的原型,第三步执行构造函数,当this被执行时候,使用新创建的对象的属性,第四步返回新创建的对象
4.构造函数的prototype指向什么?和实例对象的prototype有什么关系?
4.bind函数实现
HTTP
1.url长度为什么受限制
http协议未明确对url进行长度限制,但在真正实现中,url的长度还是受到限制的,一是服务器端的限制,二就是游览器端的限制,每次发送的http header是有大小限制
2.XHR如何传递二进制流
设置responseType为blob或者arraybuffer
var xhr = new XMLHttpRequest();
xhr.open('GET', './assets/arraybuffer');
xhr.responseType = 'arraybuffer';
xhr.send();
xhr.onreadystatechange = function(){
if (xhr.readyState == 4 && xhr.status == 200){
var blob = new Blob([xhr.response], {type: 'image/png'});
document.getElementById('image').src = URL.createObjectURL(blob); //这里设置一个张图片
}
}