DOCTYPE的作用?
DOCTYPE即Dcoument Type,網頁文件的文檔類型標準
聲明於html文檔的最前面。告知瀏覽器的解析器,使用哪種HTML規範或XHTML規範來解析頁面
HTML5爲什麼只需要寫<!DOCTYPE HTML>
<!DOCTYPE HTML>是文檔類型聲明,他聲明瞭文檔類型爲HTML5,告知瀏覽器使用的是HTML5標準
html5 新增哪些新特性?相比html4
新增api
- 本地存儲:localStorage、sessionStorage
- 地理定位:Geolocation
- Canvas繪圖
- 即時通信WebSocket
新增標籤
- aside:定義頁面著區域之外的內容,比如側邊欄
- article:定義頁面中的獨立結構
- video:多媒體
- canvas:畫布
- footer:定義文檔的底部區域
- header:定義文檔頭部區域
- nav:定義導航鏈接的部分
- section:定義文檔中的獨立內容,比如章節、頁眉、頁腳
新增全局屬性
- 新增contenteditable屬性(任何dom節點只要加上contenteditable = 'true',就變得可編輯)
- draggable 推拽
- hidden
input支持新屬性:date、email、url等
什麼是標籤語義化?
定義:更直觀的表現出每個標籤的含義和作用
優點:
- 代碼結構清晰,易於閱讀,利於開發和維護
- 方便其他設備解析(如屏幕閱讀器)根據語義渲染頁面,自動生成不同的目錄
- 有利於seo(搜索引擎)搜索引擎會根據不同的標籤來賦予不同的權重
在script標籤上使用 defer 和 async 的區別是什麼?
不使用
沒有使用 defer 和 async 屬性,瀏覽器會立即加載並執行響應的腳本
不等待後續加載的文檔元素,讀到就開始加載和執行,這會造成阻塞後續文檔的加載
async
有了async屬性:後續文檔和js腳本是並行加載,異步執行
defer
有了defer屬性:後續文檔和js腳本是並行加載的,此時js腳本僅加載不執行,等到文檔所有元素解析完成之後,DOMContentLoaded事件觸發之前執行
input支持新屬性:date、email、url等