Web前端面試問題彙總

一.     html doctype 是什麼意思

<!DOCTYPE> 聲明不是 HTML 標籤;它是指示 web 瀏覽器關於頁面使用哪個 HTML 版本進行編寫的指令。

二.     閉包的作用

1是前面提到的讀取函數內部的變量,定製函數

2是讓這些變量的值保存在內存中,實現數據共享

 

1匿名自執行函數

 

2緩存

 

3實現封裝

 

4 閉包的另一個重要用途是實現面向對象中的對象,傳統的對象語言都提供類的模板機制,

 

http://blog.csdn.net/sunlylorn/article/details/6534610

三.     數組去重

Array.prototype.unique2 = function()

{

       varn = {},r=[]; //n爲hash表,r爲臨時數組

       for(vari = 0; i < this.length; i++) //遍歷當前數組

       {

              if(!n[this[i]]) //如果hash表中沒有當前項

              {

                     n[this[i]]= true; //存入hash表

                     r.push(this[i]);//把當前數組的當前項push到臨時數組裏面

              }

       }

       returnr;

}

 

四.     ajax跨域請求

代理、jsonp(動態生成、靜態生成、框架)

五.     BFC清除浮動

說一下自己的拙見,clear:left屬性只是消除其左側div浮動對它自己造成的影響,而不會改變左側div甚至於父容器的表現,在父容器看來,三個div還都是float的,所以高度依舊塌陷。但是我們在最後添加了一個非浮動的div,由於它有clear:left屬性,所以它會按照左側div不浮動來定位自己,也就是定位到下一行,而父容器看到有一個非浮動、普通流的子元素元素,會將其包圍,這樣造成了順便也把三個浮動元素也包裹起來的效果,高度不再塌陷(不知道說明白沒有或者這種理解對不對,還望明白的同學指點)。

float爲 left|right

overflow爲 hidden|auto|scroll

display爲 table-cell|table-caption|inline-block

position爲 absolute|fixed

我們可以對父容器添加這些屬性來形成BFC達到“清浮動”效果

六.     html語義化

清晰的結構、手機瀏覽器自動適配、有利於SEO、便於開發維護

七.     如何讓首屏快速加載

第一網絡方面:

減少次數:合併圖片、css、js、加入expires或cache-control header ETags、css js外部文件用來緩存、延遲加載

減少大小:壓縮html css js,啓用gzip壓縮,精簡css js

優化網絡:靜態資源cdn、同域名減少dns

 

第二渲染方面:

避免空src、href、重定向

css放頂部 js放尾部

避免使用css表達式

Ajax使用緩存、 Get代替Post

減少dom元素數量

減少cookies大小

不用濾鏡

縮小並緩存favicon.ico

 

第三高級方面:

img有大小的標明 避免圖片放縮

display: none visibility:hidden

關注repaint和reflow並持續改進

八.     如何無阻塞加載腳本

1.放網頁底部

2.defer屬性

3.動態添加

4.用很小的初始化代碼引入,然後異步加載

5.延遲加載

6.第三方庫LABs

九.     如何編寫跨瀏覽器css

IE hack

十.     JS單例模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章