# 01-23
# 理论
- 对象类型与原始值类型的不同之处?
- typeof能否正常判断类型?有何局限
- == 与 === 区别
- 模块化有什么优点?有哪几种方案
- 什么是Promise的链
- Promise 构造函数执行和 then 函数执行有什么区别
- 通过 new 的方式创建对象和通过字面量创建有什么区别
// new Object()
// {}
1
2
2
- 为什么0.1+0.2!==0.3?
- 什么是执行栈?
- 为什么js是单线程的?单线程优缺点是什么?
# 事件
- 事件触发的过程是怎样的
- 下面输出是什么
<div id="div1">
<div id="div2">
<div id="div3">
</div>
</div>
</div>
<script>
const div1 = document.getElementById('div1')
const div2 = document.getElementById('div2')
const div3 = document.getElementById('div3')
div1.addEventListener('click', function () {
console.log(1);
})
div1.addEventListener('click', function () {
console.log(3);
}, false)
div1.addEventListener('click', function () {
console.log(2);
}, true)
div2.addEventListener('click', function () {
console.log(4);
})
div2.addEventListener('click', function () {
console.log(6);
}, false)
div2.addEventListener('click', function () {
console.log(5);
}, true)
div3.addEventListener('click', function () {
console.log(7);
})
div3.addEventListener('click', function () {
console.log(9);
}, false)
div3.addEventListener('click', function () {
console.log(8);
}, true)
div1.dispatchEvent(new Event('click'))
div2.dispatchEvent(new Event('click'))
div3.dispatchEvent(new Event('click'))
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44