# 「2022」前端面试复习之 HTML 篇
2021 前端面试 | “HTML + CSS + JS”专题 (opens new window) 「2021」高频前端面试题汇总之 HTML 篇 (opens new window)
# 预渲染/服务器渲染
# defer 和 async 的区别
图解 script 标签中的 async 和 defer 属性 (opens new window)
在<script>
元素中设置 defer 属性,相当于告诉浏览器立即下载,但延迟执行。
defer 等渲染好了有序执行
async 等下载好了立马执行
# meta (opens new window)
网页元数据
属性:charset,http-equiv,name
- http-equiv 对应的值有: X-UA-Compatible,content-type,x-dns-prefetch-control 另外一些缓存的不生效
- name 对应的值有:author,description,keywords,viewpoint,robots,renderer,
# DOM 事件
DOM 级别一共可以分为四个级别:DOM0 级、DOM1 级、DOM2 级和 DOM3 级
DOM 事件分为 3 个级别:DOM 0 级事件处理,DOM 2 级事件处理和 DOM 3 级事件处理
- DOM 0 级事件
el.onclick=function(){}
- DOM 2 级事件
el.addEventListener(event-name, callback, useCapture)
- DOM 3 级事件 添加了更多事件
DOM 事件模型和事件流
- 捕获
- 目标
- 冒泡 默认
事件代理/事件委托
为了不必将子元素都添加事件函数,利用了冒泡机制,捕获子元素父级事件来判断子元素的触发
Event 对象常见的应用
event.preventDefault() 取消事件默认行为 event.stopPropagation() 阻止冒泡 event.stopImmediatePropagation() 既能阻止事件向父元素冒泡,也能阻止元素同事件类型(比如一个元素可以添加任意多个点击事件)的其它监听器被触发