css(面试题)
实现垂直居中的方式:
- flex布局:设置父元素为display:flex; 使用 justify-content:center; align-item:center;来进行居中
- 块级盒子使用:margin: 0 auto;
- 行内元素:使用: text-align:center line-height:父级高度
- 使用位移:transform: translate(50%,50%)
- 使用定位:子绝父相 来进行定位
pc端如何实现响应式布局:
- 可以通过px和rem的转换来进行
- 在vue中可以通过插件postcss-pxtorem px2rem-loader lib-flexible来进行
- 通过 vh vw %来进行 媒体查询
js(面试题)
ES6的都有哪些新特征呢?
- let和const
let和const: 不存在变量提升;只能声明一次,不能重复声明; 遇到大括号会有块级作用域;
变量声明出来存在VO或者AO,不会给window中增加属性。
var: 有变量提升 在全局中声明的变量,会给window增加一个属性- 实现了数组的结构赋值和对象的结构赋值
- 展开运算符
- map和set和filter
map和filter的区别是 :map是会进行改变原数组的,而filter的话,只是进行元素的筛选,不会改变元素的个数。
5箭头函数
6模板字符串
深拷贝和浅拷贝都有哪些? 区别是什么?
浅拷贝:
1.Object.assign() :把两个对象合并成一个对象。
如果使用Object.assign()也算是只有一层算是深拷贝。
有子级的情况下是算浅拷贝。
2展开运算符:进行的就是浅拷贝
3slice()
4concat() 方法也算是浅拷贝
使用concat来进行对象的话是一个深拷贝
深拷贝
1JSON.stringify()或者JSON.parse
用json会出现的问题: 它不可以拷贝 undefined , function, RegExp等类型。
2通过for in
3递归
4concat(数组的深拷贝) 使用concat合并数据,会返回一个新的数组。