30 Seconds of Interviews(HTML篇)

easy

image標籤的alt屬性的目的是什麼?

在用戶沒法查看圖像的狀況下,alt屬性會爲圖像提供備用信息。 alt屬性應該用於描述任何圖像(除了僅用於裝飾目的的圖像,在這種狀況下它應該留空)編程

Good to hear瀏覽器

  • 裝飾目的圖像應具備空的alt屬性。
  • Web爬蟲使用alt標籤來理解圖像內容,所以alt屬性對搜索引擎優化(SEO)很重要。
  • 在alt標記的末尾,記得放一個 . 來提升可訪問性。

清除緩存的目的是什麼,該如何實現?

瀏覽器具備緩存功能,用來臨時存儲網站上的文件,所以在切換頁面或從新加載同一頁面時不須要再次從新下載它們。服務器經過設置併發送請求頭信息,告訴瀏覽器在服務器規定的時間內緩存文件。這大大提升了網站速度並節省了帶寬。緩存

可是,當開發人員更改網站時,它可能會致使問題,由於用戶的緩存仍然引用舊文件。若是緩存的CSS和JavaScript文件的引用地址已再也不存在(已移動或已重命名),則網站將引用不到資源致使出錯。服務器

清除緩存是強制瀏覽器下載新文件的過程。這是經過將新文件命名爲與舊文件不一樣的名稱來完成的。cookie

強制瀏覽器從新下載文件的經常使用技術是在文件名末尾加一個字符串,好比版本號或者時間戳。這樣瀏覽器將其視爲不一樣的文件,但無需更改文件名。session

src="js/script.js" => src="js/script.js?v=2"

網頁能夠包含多個<header>元素和<footer>元素嗎?

均可以。 W3文檔聲明<header>標籤和<header>表明其最近的祖先section的標題和頁腳區域。所以,頁面<body>不只能夠包含頁眉和頁腳,並且每一個<article><section>元素也能夠。併發

Good to hear異步

  • W3建議您擁有任意數量的<header><header>,但頁面的每一個section裏只包含1個。

簡要描述如下HTML5語義元素的正確用法:<header><article><section><footer>

  • <header>用於包含介紹性或導航信息的內容。這能夠包括章節標題,做者姓名,發佈時間和日期,目錄或其餘導航信息。
  • <article>旨在容納一個獨立的組合,在邏輯上能夠獨立地在頁面外從新建立,而不會失去其含義。我的博客文章或新聞報道都是很好的例子。
  • <section>是一個靈活的容器,用於存放共享信息主題或目的的內容。
  • <footer>用於包含應出如今內容末尾部分的信息,幷包含有關該部分的其餘信息。做者姓名,版權信息和相關連接是此類內容的典型示例。

intermediate

<script>標籤中的deferasync屬性是什麼?

若是兩個屬性都不存在,則腳本會同步下載並執行,並中止解析文檔,直到它完成執行(默認行爲)。腳本會按照遇到的順序下載和執行。async

defer屬性會讓下載腳本和文檔解析同步進行,但直到文檔解析完成後纔會執行腳本,至關於在DOMContentLoaded事件偵聽器內執行。被延遲的腳本將按順序執行。編程語言

async屬性與defer的功能相同。不一樣的是,異步腳本不必定按順序執行。

注意:只有在腳本具備src屬性(即不是內聯腳本)時,才能使用這兩個屬性。

<script src="myscript.js"></script>
<script src="myscript.js" defer></script>
<script src="myscript.js" async></script>

Good to hear

  • <head>中放置一個延遲腳本容許瀏覽器在頁面仍在解析時下載腳本,所以比將腳本放在正文結尾以前更好。
  • 若是腳本相互依賴,請使用defer
  • 若是腳本是相互獨立的,請使用async
  • 若是DOM必須準備好而且內容未放在DOMContentLoaded偵聽器中,請使用defer

什麼是DOM?

DOM(文檔對象模型)是一種跨平臺的API,它將HTML和XML文檔視爲由節點組成的樹結構。這些節點(例如元素和文本節點)是能夠以編程方式操做的對象,對它們進行的任何可見更改都會在文檔中實時反映。在瀏覽器中,此API可供JavaScript使用,其中能夠操縱DOM節點以更改其樣式,內容,文檔中的位置或經過事件偵聽器進行交互。

Good to hear

  • DOM被設計爲獨立於任何特定的編程語言,使得文檔的結構表示能夠從單個一致的API得到。
  • 隨着頁面的加載,DOM在瀏覽器中逐步構建,這就是爲何腳本要放在頁面底部、帶有defer屬性的<head>中或DOMContentLoaded事件監聽器的內部。應該在構造DOM以後運行操縱DOM節點的腳本以免錯誤。
  • document.getElementById()document.querySelector()是用於選取 DOM 節點的經常使用函數。
  • 可經過HTML解析器運行字符串的方法將innerHTML屬性設置爲新值,從而提供一種將動態HTML內容附加到節點的簡便方法。

討論一下HTML規範與瀏覽器實現之間的差別。

諸如HTML5之類的HTML規範定義了文檔必須遵照的一組規則,符合該規則的被稱爲有效。此外,規範提供了有關瀏覽器如何解釋和呈現此類文檔的說明。

若是瀏覽器根據規範的規則處理有效文檔,則稱其爲「支持」規範。到目前爲止,沒有任何瀏覽器支持HTML5的全部規範(儘管全部主流瀏覽器都支持其中的大部分),所以,開發人員必須確認所使用的屬性是否全部的瀏覽器都支持。這就是爲何跨瀏覽器支持仍然是開發人員頭痛的緣由,儘管具體狀況有所改善。

Good to hear

  • HTML5定義了無效HTML5文檔的一些規則(例如包含語法錯誤的文檔)
  • 可是,無效文檔可能包含任何內容,所以規範沒法全面處理全部可能性
  • 所以,許多關於如何處理格式錯誤的文檔的決定都留給了瀏覽器。

XHTML與HTML相比有哪些不一樣之處?

一些關鍵的區別是:

  • XHTML元素必須具備XHTML <DOCTYPE>
  • 屬性值必須用引號括起來
  • 禁止屬性最小化(例如,必須使用checked =「checked」而不是checked)
  • 元素必須始終正確嵌套
  • 元素必須始終閉合
  • 特殊字符必須轉義

Good to hear

  • 任何元素均可以自閉合
  • 標籤和屬性區分大小寫,一般爲小寫

rel ="noopener"屬性在何處使用?爲什麼使用?

rel ="noopener"屬性是<a>元素中使用的屬性。它會阻止頁面具備window.opener屬性,該屬性將指向打開連接的頁面,並容許從超連接打開的頁面操做超連接所在的頁面。

Good to hear

  • rel ="noopener"應用於超連接。
  • rel ="noopener"阻止打開的連接操縱源頁面。

hard

什麼是HTML5 Web存儲?解釋一下localStoragesessionStorage

使用HTML5,網站能夠在用戶的​​瀏覽器中本地存儲數據。數據存儲在 名稱/值 對中,網頁只能訪問本身存儲的數據。

localStoragesessionStorage在生命週期上的差別:

  • 經過localStorage存儲的數據是永久性的:它不會過時並保留在用戶的計算機上,直到Web應用程序刪除它或用戶手動刪除它。
  • sessionStorage與存儲數據的頂級窗口或瀏覽器選項卡具備相同的生命週期。當選項卡永久關閉時,經過sessionStorage存儲的全部數據都將隨之被刪除。

localStoragesessionStorage在存儲範圍上的差別:

  • 兩種形式的存儲都做用於同源,所以具備不一樣來源的文檔永遠不會共享存儲對象。
  • sessionStorage也是基於每一個窗口的範圍。同源的文檔在兩個瀏覽器選項卡中具備單獨的sessionStorage數據。
  • localStorage不一樣,來自同一源的相同腳本在不一樣選項卡中打開時沒法訪問彼此的sessionStorage

Good to hear

  • 早期,用cookies來完成本地存儲功能。
  • 存儲容量限制比使用cookie要大得多(至少5MB),並且速度更快。
  • 數據永遠不會傳輸到服務器,只有在客戶端主動獲取時才能使用。

注:本文爲譯文,英文原版地址:https://30secondsofinterviews...

相關文章
相關標籤/搜索