什么是缓存?
缓存是一种技术,通过存储开销大的函数执行的结果,并且在相同的输入再次出现时返回已缓存的结果,从而加快程序的速度。
缓存的目的就是减少“昂贵的函数”的调用次数,从而节约资源,这里的资源指的是时间和计算机内存。
缓存的意义
举个实例
假设你在市场卖菜,路过的人都问菜怎么卖,有多种菜的话,每次都要回答,就很麻烦。如果把每个菜的价格,都写在一个牌子上放在相应的菜上面,这样客人就一目了然,自己也不用每次都回答了。
这个牌子,就相当于缓存,将计算的结果存储起来,以便下一次使用,就不用一次一次的重复执行相同的函数,节约了资源。
缓存怎么工作的
JavaScript中缓存的概念主要两个概念之上,分别是闭包和高阶函数。
闭包
什么是闭包?闭包就是,当一个函数作为结果被返回时,就会产生闭包,闭包包含着这个函数,等待调用,并且闭包还包含声明这个函数所在环境的变量。
何时使用缓存
当然,使用缓存效率是级高的,你现在可能想要缓存所有的函数,这可能会变得非常无益。以下几种情况下,适合使用缓存:
对于昂贵的函数调用,执行复杂计算的函数。
对于具有有限且高度重复输入范围的函数。
用于具有重复输入值的递归函数。
对于纯函数,即每次使用特定输入调用时返回相同输出的函数。