跳至主要內容
实现几种数据结构

链表

class ListNode {
    val: number
    next: ListNode | null

    constructor(val: number = 0, next: ListNode | null = null) {
        this.val = val
        this.next = next
    }
}

haneball小于 1 分钟TypeScript数据结构
实现 Function 的原生方法

bind 方法

  • 参数有 thisArg 和原函数的参数 args
  • thisArgundefined,则赋值全局对象 window
  • 支持衔接后续传入的参数 otherArgs

haneball大约 1 分钟JavaScriptTypeScript原生方法
防抖函数

概述

  • 当事件触发时,函数 fn 不会立即执行,而是等待一段时间
  • 若等待时间内没有再次触发事件,则执行函数 fn
  • 当事件被频繁触发时,防抖函数 debounce 表现为延迟执行

haneball大约 1 分钟JavaScriptTypeScript性能优化
节流函数

概述

  • 当事件触发时,函数 fn 立即执行
  • 当事件触发后,等待一段时间才会再次执行函数 fn
  • 当事件被频繁触发时,节流函数 throttle 表现为按一定频率执行

haneball小于 1 分钟JavaScriptTypeScript性能优化
柯里化函数

概述

柯里化函数能将一个接受多个参数的函数,转换为一个接受单一参数的函数,其会返回另一个函数,并继续接受剩余的参数

如下所示,foobar 函数的返回结果均为 a + b + c = 10,调用的方式却不相同。foo 函数一次性将所有参数传入,而 bar 函数则是逐个参数传入。foo 函数转换为 bar 函数的过程,即 currying 柯里化。


haneball大约 2 分钟JavaScriptTypeScript常用函数
深拷贝

概述

  • 使用递归的方式进行深拷贝,支持多种类型
  • 拷贝 Function 需要截取 {...} 内的函数体

haneball大约 1 分钟JavaScriptTypeScript常用函数