JavaScipt
Home
Github (opens new window)
Npm (opens new window)
Home
Github (opens new window)
Npm (opens new window)
  • ------------数据类型------------
  • 数据类型
  • 检测数据类型
  • instanceof
  • toString
  • Typeof
  • null 和 undefined
  • 如何安全的获取undefined
  • 为什么出现BigInt
  • 类型转换
  • 包装类型
  • isNaN和number.isNaN区别
  • 判断数组的方法
  • 判断是否是一个空对象
  • Object.is和==与===区别
  • 0.1 + 0.2 !== 0.3
  • 大数危机
  • ------------基础------------
  • 字符串的方法
  • 数组的方法
  • 类数组
  • 函数参数传递
  • use strict
  • JSON
  • Object和Map区别
  • 对象的浅拷贝方法区别
  • for...in和for...of区别
  • for..of遍历对象
  • 方法借用
  • 常用正则表达式
  • 尾调用
  • js 常见的设计模式
  • requestAnimationFrame
  • escape、encodeURL、encodeURIComponent区别
  • ajax、fetch
  • ajax
  • DOM 和 BOM
  • ------------原型------------
  • new
  • 原型链
  • /componentDocs/原型/防止意外丢失new.html
  • ------------this------------
  • this 指向
  • call
  • apply
  • bind
  • ------------执行环境------------
  • 闭包
  • 闭包和模块
  • 词法作用域和动态作用域
  • 函数提升
  • 作用域链
  • 执行栈
  • 执行上下文
  • eval
  • 模块化
  • ------------异步编程------------
  • 页面是如何活动起来的
  • 回调函数
  • 异步方案
  • setTimeout
  • XMLHttpRequest
  • 宏任务/微任务
  • Promise
  • async await
  • 并发与并行
  • ------------面向对象------------
  • 创建对象的方法
  • 继承的方式
  • ------------ES6------------
  • var let const
  • const修改值
  • 箭头函数
  • Map和WeakMap的区别
  • ------------事件------------
  • querySelector和querySelectorAll小问题
  • 事件委托
  • DOM 事件流
  • 事件冒泡和事件捕获
  • addEventListener
  • ------------手写题------------
  • 防抖
  • 节流
  • 判断对象相等
  • 浅拷贝
  • 深拷贝
  • /componentDocs/手写题/排序.html
  • /componentDocs/手写题/数组扁平化.html
  • 数组去重
  • 惰性函数
  • 函数科里化
  • 偏函数
  • 包装器
  • 实现 setInterval
  • ------------DOM操作------------
  • 常用的DOM操作
  • 100000个DOM元素怎么渲染

← /componentDocs/手写题/排序.html 数组去重 →