1.div的display默认值为?
2. 简述对标签语义化的理解?
- 对搜索引擎友好,便于优化
- 包含基本的样式,在没有css的时候也能满足基本的阅读
- 源码更具可读性,便于维护
3.css选择器权重
- 答:!important(无限大)>内联(1000)>ID选择器(100)>class选择符(10)>标签选择(1)
加分项:属性选择器或伪类(10)、伪元素(1),通配选择器*(0)
4.position的默认值,以及各种position属性值的差别?
- static(默认):按照正常文档流进行排列;
- relative(相对定位):不脱离文档流,参考自身静态位置通过 top, bottom, left, right 定位;
- absolute(绝对定位):参考距其最近一个不为static的父级元素通过top, bottom, left, right 定位;
- fixed(固定定位):所固定的参照对像是可视窗口。
- inherit(继承父级)
- sticky 是relavtive+fixed的完美结合,制造出吸附效果。必须配合偏移值使用
5.弹性布局flex的理解以及使用场景?
- 答:可以简便、完整、响应式地实现各种页面布局。其他的自由发挥。
6.ES5和ES6有哪些常见的区别,或者ES6新增了什么?
- 箭头函数
- let const
- promise、map、set
- class的原生支持,面向对象更加友好了
6.深拷贝和浅拷贝的区别?怎么实现深拷贝?
- 浅拷贝在拷贝对象的时候,实际拷贝的对象的指针,深拷贝是拷贝的值
- 递归的方式可以实现深拷贝
- 拷贝的对象为简单的json对象的时候可以转化为字符串,然后再次转化成json对象,实现简单的深拷贝
7. ==和===的区别?
8.闭包的作用?
- 变量静态化,让变量常驻内存
- 实现私有化成员变量和方法,避免污染全局成员
- 实现了简单的封装。
9.实现任意一个排序算法
//冒泡排序
var array = [5, 4, 3, 2, 1];
var temp = 0;
for (var i = 0; i <array.length; i++){
for (var j = 0; j <array.length - i; j++){
if (array[j] > array[j + 1]){
temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
10.简单谈谈vue优化或者微信小程序优化?
- 使用列表渲染时加上key
- 微信小程序减少setdata,vue减少dom操作次数
- 代码压缩、懒加载、减少请求
网友评论