# 原理

# 面向对象(OO)和面向过程(OP)的区别

面向对象是什么?将问题才分成各种对象, 通过各个对象的属性行为,来解决问题

面向过程是什么?将问题分成步骤,一步步实现

面向对象是宏观的思考,而面向过程是细节的思考

例如,比如去饭店,去饭店客人只在乎点菜(面向对象),而不需要在乎菜是怎么做,而饭店在乎菜怎么来,怎么做,这就是面向过程

参考资料 (opens new window)

# 小程序冷启动和热启动

小程序启动会有两种情况,一种是「冷启动」,一种是「热启动」。 假如用户已经打开过某小程序,然后在一定时间内(五分钟)再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台,这个过程就是热启动; 冷启动指的是用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动

微信小程序强制更新版本以及热启动和冷启动 (opens new window)

# 什么是垃圾回收机制

垃圾回收机制,可以理解成浏览器将没有用到的变量清除掉,释放一些内存

闭包会导致内存泄漏,闭包会将返回的变量长期存储在内存中

# 清除算法(GC)

  • 引用计数法: 当引用一次的时候会计算引用的次数,当次数变成0时会清空

优势:即刻回收垃圾, 劣势:计数器会占很大位置,无法解决循环引用

  • 标记清除法

将所有对象做个标记,清除的时候,将没有标记的对象清除

简单了解JavaScript垃圾回收机制 (opens new window)