HTML 
说明
- <!DOCTYPE>- <!DOCTYPE>声明文档的解析类型 (document.compatMode),避免浏览器的怪异模式,位于- HTML文档中的第一行,处于- <html>标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE 不存在或格式不正确会导致文档以兼容模式呈现。
- 标准模式的排版和 JS 运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
 
- <!DOCTYPE>声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。- <!DOCTYPE>声明必须在- HTML文档的第一行,这并不是一个- HTML标签。
HTML5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 doctype 来规范浏览器的行为(让浏览器按照它们应该的方式来运行)
而 HTML4.01 基于 SGML,所以需要对 DTD 进行引用,才能告知浏览器文档所使用的文档类型。
visibilitychange 
当用户在浏览器标签页间切换时,监控当前页面的状态,是否为最上层标签,决定是否开始 or 暂停视频:
js
document.addEventListener('visibilitychange', function () {
  if (document.visibilityState == 'visible') {
    console.log('欢迎回来!')
    //do something
    //继续视频播放
  }
  if (document.visibilityState == 'hidden') {
    console.log('不要走!')
    //do something else
    //暂停视频播放
  }
})参考 
https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Questions/Questions-and-Answers