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

# 01-17

## 模拟实现

1. 实现一个instanceof函数

```js
function instanceof(a,b){

}
```

2. 实现一个节流函数 throttle

```js
function throttle(fn,delay){

}
```

3. 实现一个防抖函数 debounce

```js
function debounce(fn,delay){

}
```

## 理论

1. js的异步机制是怎样的
2. 简述一下event loop
3. 什么是提升，有什么作用
4. 什么是暂时性死区
5. 在声明前使用let/const声明的变量会出现什么问题
6. 判断一个对象是数组的方法有哪些

## 场景

1. 数字格式化

```js
// 输入为数字，输出为字符串
// 使用“,”分割整数部分，小数保留两位
/**
* @param {number} num
*/
function transfer(num){
    // ...code
}
transfer(1234567890.23) // "1,234,567,890.23"
```

## 朋友们的回答

* [tdk](https://www.cnblogs.com/dark-duck/p/14289579.html)
* [tl](https://juejin.cn/post/6918694221184499719)
