安全的类型检测

在JS中,内置的类型检测机制有typeof和instanceof,但是这两个关键字并非完全可靠。所以我们可以使用Object的toString()方法以保证返回一个[object XXX]格式的字符串。这样就可以创建一个函数来判断对象的类型。

作用域安全的构造函数

  • 创建一个作用域安全的构造函数,就是让this对象指向正确的实例对象。
  • 首先使用instanceof方法判断this对象是否为正确类型的实例,如果不是,就创建一个新的实例并返回。

惰性载入函数

惰性载入函数表示函数执行的分支仅会发生一次,实现惰性载入函数的方式有两种。
1. 第一种,在函数被调用时再处理。在第一次调用时,该函数会覆盖为另一个按合适方式执行的函数,这样任何对函数的调用都不会再经过执行的分支了。
2. 第二种,在声明函数时就制定适当的函数。这样在第一次调用函数时就不会损失性能,而在代码首次加载时会损失一点儿性能。

函数绑定

JS与DOM交互中经常需要使用函数绑定,定义一个函数然后将其绑定到特定DOM元素或集合的某个事件触发程序上,也经常与事件处理程序一起使用,以便把函数作为变量传递的同时保留代码执行环境。

重复的定时器

我们通常使用setInterval方式来实现时间间隔会出现两个问题:
1. 某些间隔会被跳过。
2. 多个定时器的代码执行时,间隔可能会有误差。
所以我们可以使用setTimeout方式来完善该功能。

函数节流

  • 定时器不仅可以用来定时,还可以用来缓解浏览器的压力。浏览器在执行DOM操作的时候,就会使用更多的内存和CPU。连续使用过多的DOM操作会导致浏览器崩溃。
  • 函数节流的基本思想就是,某些代码不可以在没有间断的情况下连续重复使用。也就是说,第一次调用函数就创建一个定时器,在指定的时间间隔之后才能再次运行。当第二次调用该函数时,就会清除前一次的定时器并设置一个。目的就是为了保证每次执行函数时有一段时间的间隔。