day1-2021/08/09

98 阅读3分钟

css

1、简述盒子模型

由外到内分别为marginborderpaddingcontent;
标准盒模型的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中的数据通过计算得到的值,可以计算得到一个新的属性
支持缓存,只有依赖数据发生变化时,才会变化;
不支持异步,内部发生异步变化时,无法监听数据变化