1. 程式人生 > >前端面試 —— HTML

前端面試 —— HTML

DOCTYPE有什麼作用?標準模式與混雜模式如何區分?它們有何意義?

告訴瀏覽器使用哪個版本的HTML規範來渲染文件。DOCTYPE不存在或形式不正確會導致HTML文件以混雜模式呈現。
標準模式(Standards mode)以瀏覽器支援的最高標準執行;混雜模式(Quirks mode)中頁面是一種比較寬鬆的向後相容的方式顯示。

行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?

行內元素:a span img input select 
塊級元素:div ul ol li dl dt dd h1 p
空元素:<br> <hr> <link> <meta>

塊級元素和行內元素的區別: 
    1 . 塊級元素獨佔一行,塊級元素內可巢狀部分塊級元素, 而行內元素不能巢狀塊級元素
    2 . 塊級可設定 margin 、padding 元素,但是行內元素只有 margin-left、margin-right 和 padding-left、padding-right 有效
    3 . 塊級 display: block,行內 display: inline

頁面匯入樣式時,使用link和@import有什麼區別?

相同的地方,都是外部引用CSS方式,區別:
1 . link 是html方式,@import 是css方式
2 . link引用CSS時候,頁面載入時同時載入;@import需要在頁面完全載入以後載入,而且@import被引用的CSS會等到引用它的CSS檔案被載入完才載入
3 . link是xhtml標籤,無相容問題;@import是在css2.1提出來的,低版本的瀏覽器不支援
4 . link支援使用javascript控制去改變樣式,而@import不支援
5 . link方式的樣式的權重高於@import的權重

元素的alt和title有什麼異同?

在alt和title同時設定的時候,alt作為圖片的替代文字出現,title是圖片的解釋文字。

如何實現瀏覽器內多個標籤頁之間的通訊?

  1. WebSocket SharedWorker
  2. 也可以呼叫 localstorge、cookies 等本地儲存方式。 localstorge 在另一個瀏覽上下文裡被新增、修改或刪除時,它都會觸發一個事件,我們通過監聽事件,控制它的值來進行頁面資訊通訊。
    注意:Safari 在無痕模式下設定 localstorge 值時會丟擲QuotaExceededError 的異常

簡述一下你對HTML語義化的理解?

  1. 去掉或丟失樣式的時候能夠讓頁面呈現出清晰的結構。
  2. 有利於SEO和搜尋引擎建立良好溝通,有助於爬蟲抓取更多的資訊,爬蟲依賴於標籤來確定上下文和各個關鍵字的權重。
  3. 方便其它裝置解析。
  4. 便於團隊開發和維護,語義化更具有可讀性。

HTML5有哪些新特性,移除了那些元素?如何處理HTML5新標籤的瀏覽器相容問題?如何區分HTML和HTML5

新增元素:

  1. canvas
  2. 用於媒介回放的video和audio元素
  3. 本地離線儲存。
  4. 語意化更好的內容元素,比如 article footer header nav section
  5. 位置API:Geolocation
  6. 表單控制元件,calendar date time email url search
  7. 新的技術:web worker(web worker是執行在後臺的 JavaScript,獨立於其他指令碼,不會影響頁面的效能。您可以繼續做任何願意做的事情:點選、選取內容等等,而此時 web worker 在後臺執行) web socket
  8. 拖放API:drag、drop

移除的元素:

  1. 純表現的元素:basefont big center font s strike tt u
  2. 效能較差元素:frame frameset noframes

相容性問題:

  1. 實現標籤被識別
    通過document.createElement(tagName)方法即可讓瀏覽器識別新標籤,瀏覽器支援新標籤後,還可以為新標籤新增CSS樣式。
  2. JavaScript解決方案
//在<head>中呼叫以下程式碼:

<!--[if lt IE 9]>
	<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->

區分:

  1. DOCTYPE宣告的方式是區分重要因素
  2. 根據新增加的結構、功能來區分

cookies,sessionStorage和localStorage的區別?

共同點:都是儲存在瀏覽器端,且是同源的。

區別:

  1. cookies是為了標識使用者身份而儲存在使用者本地終端上的資料,始終在同源http請求中攜帶,即cookies在瀏覽器和伺服器間來回傳遞,而sessionstorage和localstorage不會自動把資料發給伺服器,僅在本地儲存。
  2. 儲存大小的限制不同。cookie儲存的資料很小,不能超過4k,而sessionstorage和localstorage儲存的資料大,可達到5M。
    資料的有效期不同。cookie在設定的cookie過期時間之前一直有效,即使視窗或者瀏覽器關閉。sessionstorage僅在瀏覽器視窗關閉之前有效。localstorage始終有效,視窗和瀏覽器關閉也一直儲存,用作長久資料儲存。
  3. 作用域不同。cookie在所有的同源視窗都是共享;sessionstorage不在不同的瀏覽器共享,即使同一頁面;localstorage在所有同源視窗都是共享

HTTP 狀態碼

1xx 狀態碼

  • 100 Continue 繼續,一般在傳送post請求時,已傳送了http header之後服務端將返回此資訊,表示確認,之後傳送具體引數資訊

2xx 狀態碼

  • 200 表示成功,並返回資訊
  • 201 請求成功並且伺服器建立了新的資源
  • 202 伺服器接受請求,但尚未處理

3xx 狀態碼

  • 301 永久性重定向
  • 302 臨時性重定向
  • 303 臨時性重定向,並總是使用GET請求新的URL
  • 304 自從上次請求後,請求的網頁未修改過

4xx 狀態碼

  • 400 伺服器無法理解請求的格式,客戶端不應當嘗試再次使用相同的內容發起請求
  • 401 請求未授權
  • 403 禁止訪問
  • 404 未找到相匹配的資源

5xx 狀態碼

  • 500 最常見的伺服器端錯誤。
  • 502 閘道器錯誤
  • 503 伺服器端暫時無法處理請求(可能是過載或維護)

持續更新中。。。