Open zhaofeihao opened 4 years ago
重点是考察对冒泡捕获的理解。 解答解构:是什么 --> 怎么用 --> 特殊case --> 应用场景。
事件会从最内层的元素开始发生,一直向上传播,直到document对象。
事件会从最外层开始发生,直到最具体的元素。
w3c 制定了统一的标准——先捕获再冒泡。 addEventListener的第三个参数就是为冒泡和捕获准备的.
element.addEventListener(event, function, useCapture)
使用事件代理的好处不仅在于将多个事件处理函数减为一个,而且对于不同的元素可以有不同的处理方法。 假如上述列表元素当中添加了其他的元素(如:a、span等),我们不必再一次循环给每一个元素绑定事件,直接修改事件代理的事件处理函数即可。
触发dom上的某个事件时,会产生一个事件对象,里面包含着所有和事件有关的信息。 常用:
currentTarget 事件处理程序当前正在处理事件的那个元素(始终等于this)
(currentTarget始终是监听事件者,而target是事件的真正发出者。)
preventDefault 取消事件默认行为,比如链接的跳转
stopPropagation 取消事件冒泡
target 事件的目标
1. JS中事件冒泡与捕获 2. javascript 事件流 3. 深入理解e.target与e.currentTarget
三种类型:alert、confirm、modal 样式是否支持自定义
IndexedDB是HTML5规范里新出现的浏览器里内置的数据库。提供了类似数据库风格的数据存储和使用方式。IndexedDB里的数据是永久保存,适合于储存大量结构化数据,有些数据本应该存在服务器,但是通过indexedDB,可以减轻服务器的大量负担,实现本地读取修改使用,以对象的形式存储,每个对象都有一个key值索引。 IndexedDB里的操作都是事务性的。一种对象存储在一个object store里,object store就相当于关系数据库里的表。IndexedDB可以有很多object store,object store里可以有很多对象。
基于策略一,React 对树的算法进行了简洁明了的优化,即对树进行分层比较,两棵树只会对同一层次的节点进行比较。 即同一个父节点下的所有子节点。当发现节点已经不存在,则该节点及其子节点会被完全删除掉,不会用于进一步的比较。这样只需要对树进行一次遍历,便能完成整个 DOM 树的比较。
React 是基于组件构建应用的,对于组件间的比较所采取的策略也是简洁高效。
1. 输出顺序
2. 写垂直居中布局
3. 说一下浏览器事件机制
4. 实现new
5. 讲解http1.1 、http2.0、https
6. ES6 新特性
7. 讲解 promise
8. useState \ useEffect 讲解
写一个useEffect,只在componentDidMount 执行
9. 如何设计一个 dialog 组件
10. react是如何进行 diff 的
如何diff一个react组件 render函数的作用 diff有什么问题 讲解fiber
10. 网页性能优化
11. webpack
tree shaking 机制 tree shaking 存在的问题 css也有tree shaking,是用什么插件做的 webpack从1.0 到 4.0,做了什么优化
12. cookie、localStorage、sessionStorage、indexDB
13. xss、csrf
14. 算法