撩課-Web大前端每天5道面試題-Day14
摘要:
1. 請寫出至少5個html5新增的標籤,並說明其語義和應用場景?
section:定義文件中的一個章節;
nav:定義只包含導航連結的章節;
header:定義頁面或章節的頭部;
它經常包含 logo、頁面標題和導航性的目錄。
footer:定義頁面或章節的尾部;
它經常包含...
1. 請寫出至少5個html5新增的標籤,並說明其語義和應用場景?
section:定義文件中的一個章節; nav:定義只包含導航連結的章節; header:定義頁面或章節的頭部; 它經常包含 logo、頁面標題和導航性的目錄。 footer:定義頁面或章節的尾部; 它經常包含版權資訊、法律資訊連結和反饋建議用的地址。 aside:定義和頁面內容關聯度較低的內容, 如果被刪除,剩下的內容仍然很合理。
2. get和post請求在快取方面的區別?
get請求類似於查詢的過程,使用者獲取資料, 可以不用每次都與資料庫連線,所以可以使用快取。 post不同,post做的一般是修改和刪除的工作, 所以必須與資料庫互動,所以不能使用快取。 因此get請求適合於請求快取。
3. 如何解決非同步回撥地獄?
promise、generator、async/await
4. 圖片的懶載入和預載入?
預載入:提前載入圖片, 當用戶需要檢視時可直接 從本地快取中渲染。 懶載入:懶載入的主要目的 是作為伺服器前端的優化, 減少請求數或延遲請求數。 兩種技術的本質: 兩者的行為是相反的, 一個是提前載入, 一個是遲緩甚至不載入。 懶載入對伺服器前端有一定 的緩解壓力作用, 預載入則會增加伺服器前端壓力。
5. bind,apply,call的區別?
通過apply和call改變函式的this指向, 這兩個函式的第一個引數都是一樣的, 表示要改變指向的那個物件, 第二個引數,apply是陣列, 而call則是arg1,arg2...這種形式。 通過bind改變this作用域 會返回一個新的函式, 這個函式不會馬上執行。
6. js怎麼控制一次載入一張圖片,載入完後再載入下一張?
方法一: <script type="text/javascript"> var obj=new Image(); obj.src="http://www.itlike.com/21.jpg"; obj.onload=function(){ document.getElementById("pic") .innnerHTML="<img src='"+this.src+"' />"; } </script> <div id="pic">載入中……</div> 方法二: <script type="text/javascript"> var obj=new Image(); obj.src="http://www.itlike.com/21.jpg"; obj.onreadystatechange=function(){ if(this.readyState=="complete"){ document.getElementById("pic") .innnerHTML="<img src='"+this.src+"' />"; } } </script> <div id="pic">載入中……</div>