1.一个盒子垂直水平居中有哪些方法?回答2种到3种以上

方法1:宽度高度已知

父元素相对定位,
子元素绝对定位,
left:50%;top:50%;
margin-left:负的宽度一半
margin-top:负的高度一板

方法二:flex布局,宽度高度已知
在父元素身上:
display:flex;
justify-content:center;
align-items:center


方法三:父元素相对定位,子元素绝对定位+平移transform:translate(-50%,-50%)

2.flex:1含义

flex是由三个属性组成

flex-grow 放大bil
flex-shrink 缩小比例
flex-basis 项目长度

3.rem为什么可以实现自适应布局?在不同手机端表现是什么?

rem是基于html的字体大小进行布局,

4.vue传值

父传子:
通过v-on绑定一个变量名称,然后在子组件里面用props接收就可以了

子传父:
在子组件里面绑定一个方法,将这个参数传入之后用$emit(函数名,变量名)里面的参数是父组件中定义的一个方法名称以及参数,父组件定义好找个方法并接受参数,即可使用

5.vue双向绑定原理?

1.数据劫持objectDefinePropoty进行数据劫持
2.数据劫持之后,通过发布订阅模式

6.跨域是有哪几种方式实现的?

jsonp,nigix代理,websocket以及后端修改header

7.普通函数和箭头函数的this,以及怎么改变普通函数里面的指向?

1.this总是代表他的直接调用者,例如:obj.func那么func里面的this就是obj

2.调用的时候,没有任何前缀,则指向window,new的时候,则指向new出来的对象

3.在默认情况(非严格模式下,未使用'use strict'),没找到直接调用者,则this指的是window

4.在严格模式下,没有直接调用者的函数中的this是undefined

5.使用call,apply,bind,this指的是绑定对象【也就是说用来重定义this这个对象】

8.promise和async await他有什么区别?

promise链式的,async await请求方法从异步变成了同步,async函数让代码简洁很多,不需要像promise一样需要then,避免嵌套大U吗

9.ES6的新特性有哪些?

promise,async await,class继承,结构赋值,定义const,var,let,箭头函数。

const定义的对象是可以改变的,因为const定义的只是那个指向对象的地址,地址指向的位置的内容是可以改变的