---
url: https://sugarat.top/offer/review/01-23.md
---

# 01-23

## 理论

1. 对象类型与原始值类型的不同之处?
2. typeof能否正常判断类型?有何局限
3. \== 与 === 区别
4. 模块化有什么优点？有哪几种方案
5. 什么是Promise的链
6. Promise 构造函数执行和 then 函数执行有什么区别
7. 通过 new 的方式创建对象和通过字面量创建有什么区别

```js
// new Object()
// {}
```

8. 为什么0.1+0.2!==0.3?
9. 什么是执行栈？
10. 为什么js是单线程的？单线程优缺点是什么？

## 事件

1. 事件触发的过程是怎样的
2. 下面输出是什么

```html
    <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>
```

## 朋友们的回答

* [tl](https://juejin.cn/post/6921708944939286542/)
