第十天
1,事件委托的原理?
就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件
2,v-model原理(双向数据绑定原理)?
采用数据劫持结合发布者-订阅者模式的方式。
Vue 将遍历此对象所有的属性,并使用Object.defineProperty把这些属性全部加上set和get访问器,这样在设置data的属性值的时候,会触发set方法,那么set方法主要有两个作用,一是改变data里面的属性值,二是发出数据变化的通知。Observer作为数据的观察者,让数据对象的读写操作都处于自己的监管之下,Dep作为Watcher(订阅器)的收集者,当数据发生变化set会发出通知,会被Observer观察到,然后由Dep通知到Watcher,最后更新视图。
3,怪异盒模型的组成部分?
margin、border、padding、content,和标准盒模型不同的是,怪异盒模型的宽高包含了padding和border
4,一个div的默认边框是多少?
所以默认边框应该为0
5,组件缓存的优缺点?
原理:先查询缓存中有没有要的数据,如果有,就直接返回缓存中的数据。 如果缓存中没有要的数据,才去查询数据库,将得到数据先存放到缓存中,然后再返回给php。
优点: 1、 减少了对数据库的读操作,数据库的压力降低
2、 加快了响应速度
缺点: 1、 因为内存断电就清空数据,存放到内存中的数据可能丢失
2、 缓存中的数据可能与数据库中数据不一致
3、 内存的成本高
4、 内存容量相对硬盘小
6,let ,const ,var的区别?
一,var定义的变量,作用域是整个封闭函数,是全域的;let定义的变量,作用域是在块级或者字块中;
二,变量提升:不论通过var声明的变量处于当前作用于的第几行,都会提升到作用域的最顶部。 而let声明的变量不会在顶部初始化,凡是在let声明之前使用该变量都会报错(引用错误ReferenceError);
三,只要块级作用域内存在let,它所声明的变量就会绑定在这个区域;四,let不允许在相同作用域内重复声明(报错同时使用var和let,两个let)。
const用来专门声明一个常量,它跟let一样作用于块级作用域,没有变量提升,重复声明会报错,不同的是const声明的常量不可改变,声明时必须初始化(赋值)
7,选择器权重 和常用选择器?
1. 第一等:代表内联样式,如: style=””,权值为1000。
2. 第二等:代表ID选择器,如:#content,权值为0100。
3. 第三等:代表类,伪类和属性选择器,如.content,权值为0010。
4. 第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。
5. 通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。
6. 继承的样式没有权值。
常用选择器?
① 标签选择器 ②类选择器(class选择器) ③ID选择器: ④通用选择器 * ⑤并集选择器例如: li,.ji{ color: red; } ⑥ 后代选择器 ⑦ 子代选择器