css
1、简述盒子模型
由外到内分别为margin、border、padding、content;
标准盒模型的width=content;
怪异盒模型的width=content+border+padding;
box-sizing:border-box;可设置为怪异盒模型。
2、清除浮动的方法,并简述不清楚浮动会发生什么?
a、设置父元素高度;
b、设置父元素overflow:hidden;
c、为父元素添加clear类名;
.clear:after{content:"";display:block;height:0;clear:both;visibility:hidden;}
父元素没有高度,子元素浮动,没有撑开父元素的高度,会导致父元素高度塌陷。
3、css实现垂直水平居中(多种方法)
<div class="father">
<div class="son"></div>
</div>
第一种
.father{position:relative;}
.son{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}
第二种
.son{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;}
第三种
.father{display:flex;justify-content: center;align-items: center;}
js
1、请描述一下cookies,sessionStorage和localStorage的区别
cookies是为了标识用户身份存放在本地,始终在同源的http请求中携带,在浏览器与服务器中传递;
存放空间较小,不超过4k;
可以设置过期时间,过期时间结束前一直存在。
sessionStorage会话级别的存储,关闭浏览器就会删除;
存放空间较大,5M甚至更大。
localStorage永久存储,除非手动删除,否则一直存在;
存放空间较大,5M甚至更大。
2、原生js新增、删除、替换节点的语法
新增
var oDiv = document.createElement("div");
document.body.appendChild(oDiv);
删除
a、父元素.removeChild(子元素);
b、子元素.remove();
替换
父元素.replaceChild(新节点,旧节点)
3、获取元素滚动高度的方法
document.body.scrollTop || document.documentElement.scrollTop
4、事件捕获和事件冒泡的区别和作用
事件冒泡是子元素向父元素传递
事件捕获是父元素向子元素传递
先进行事件捕获,再进行事件冒泡;
ele.addEventListener('click',doSomething2,true)
true=捕获
false=冒泡
ele.onclick = doSomething2这种绑定方式为事件冒泡
阻止事件冒泡
event.stopProPagation?event.stoppropagation():event.cancelbubble=true;
vue
1、父子组件之间是通过什么通信的
父元素通知子元素:props
子元素通知父元素:$emits
2、v-show和v-if的区别
v-show通过控制css---display:none来控制显示隐藏,切换开销较小;
在任何条件下都会被编译,初始开销较大
v-if是通过添加和删除DOM元素来控制显示隐藏,有一个局部编译和卸载的过程,切换开销较大;
初次只有条件为真时才会渲染
3、computed和watch的区别
watch监听的必须是data中声明过或者父组件传递过来的props中的数据
不支持缓存,数据变化,会立即触发相应的操作
支持异步,
computed计算属性,基于data中声明过或者父组件传递的props中的数据通过计算得到的值,可以计算得到一个新的属性
支持缓存,只有依赖数据发生变化时,才会变化;
不支持异步,内部发生异步变化时,无法监听数据变化