- 能力检测
在编写代码之前先检测特定浏览器的能力
比如调用函数之间,先检查函数是否存在
无法精准的检测特定的浏览器和版本 - 怪癖检测
实际上是浏览器实现中存在的bug
通常涉及到运行一小段代码
确定浏览器是否存在某个怪癖
由于怪癖检测与能力检查相比效率更低,因此应该只在怪癖会干扰脚本正常运行的情况下使用
无法精准的检测特定的浏览器和版本 - 用户代理检测
通过检测用户代理字符串来识别浏览器navigator.userAgent
浏览器提供商可能会在用户代理字符串中添加一些欺骗性信息、
即使如此,通过用户代理字符串仍然可以检测出浏览器所用的呈现引擎、所在的平台、移动设备和游戏系统 - 一般优先考虑能力检查,怪癖检测是第二选择而用户代理检测是最后一种方法,因为这种方法对用户代理字符串有很强的依赖性