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>